Vim에서 탭 사용을 중지했습니다.
Vim에서 탭 페이지를 사용하는 것을 중지했습니다. 어떻게 했을까, 대신에 버퍼를 사용하기 시작했습니다.
매우 편안하기 때문에 소개합니다.
거의 NeoVim을 터미널로 사용하기 위해 한 일 - Qiita의 연속입니다.
했던 일
Denite 도입
Shougo/denite.nvim: Dark powered asynchronous unite all interfaces for Neovim/Vim8
진지하고 빠릅니다. Unite는 사용할 수 없다.
이런 식으로 mapping하고 있습니다.
" Denite
nnoremap <Leader>p :Denite buffer file_rec<CR>
nnoremap <Leader>b :Denite buffer<CR>
call denite#custom#map('insert', "<Up>", '<denite:move_to_previous_line>', 'noremap')
call denite#custom#map('insert', "<Down>", '<denite:move_to_next_line>', 'noremap')
과연
file_rec
가 들어가면 조금 시간이 걸리므로, 이용은 최소한으로 유지하고 있습니다.:set hidden
저장되지 않은 상태에서 버퍼를 전환해도 경고가 발생하지 않습니다.
:wq 대신 정의
NeoVim을 터미널로 사용하기 위해 한 일 - Qiita 에도 썼습니다만, 이런 느낌으로 하고 있습니다.
nnoremap <Leader>q :up<CR>:call CloseBuf()<CR>
<Leader>q
로 변경이 있으면 저장+버퍼를 닫는 동작이 됩니다.터미널 버퍼의 이름을 실행중인 프로세스 이름을 포함하는 것으로 변경
단말의 버퍼명은 디폴트로 모두
term://〜:/usr/bin/fish
같은 느낌으로, 단말로 실행중의 프로그램명이라든지는 들어가지 않네요. 이것으로 무엇이 곤란한가 하면, 단말을 복수 열면 Denite상에서 구별이 되지 않습니다.예를 들어 "rails server"를 실행중인 버퍼는 rails라든지 fuzzy-search하고 싶기 때문에 프로세스 이름을 넣기로 합니다.
autocmd BufLeave * if exists('b:term_title') && exists('b:terminal_job_pid') | execute ":file term" . b:terminal_job_pid . "/" . b:term_title
file
는 파일명을 변경하는 명령이지만, 단말이라면 무엇이든 괜찮은 것 같습니다. 단말의 타이틀을 포함하고 있을 뿐이므로, 단말 쪽으로 타이틀에 프로세스명등 넣어 주세요.PID를 넣고 있는 것은, Vim에서는 버퍼명이 입으면 에러가 나와 버리는 것 같기 때문에, 독특화의 의미입니다.
이런 느낌입니다.
Buffer를 사용하는 이점
Buffer 사용 (탭 없음) 단점
화면 분할의 문제에 대해서는, 친숙한 조작 방법으로 Buffer 대신에 탭 페이지를 fuzzy-search 하는 것도 노력하면 할 수 있을 것 같기 때문에, 마음이 향하면 할지도 모릅니다.
좋은 Vim Life!
Reference
이 문제에 관하여(Vim에서 탭 사용을 중지했습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/acomagu/items/5f10ce7bcb2fcfc9732f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)