많은 버퍼를 편집 할 때 워크 플로에서 결함을 발견했습니다. 버퍼에 있고 이름을 기억하지 않고 다른 버퍼가 아닌 다른 버퍼로 전환하고 싶습니다. . 따라서 사용할 :b#
수 없으며 명령으로 완료를 사용하는 :b
것도 편리하지 않습니다.
반대로 탭 완성이 매우 편리하다는 것을 알았습니다. 올바른 옵션을 자신에게 적합한 값으로 설정하면 많은 도움이 될 수 있습니다. 이들은 내 관련 라인입니다 vimrc
(그들은 나를 위해 일하지만 그들은 당신을 위해 일하지 않을 수 있으므로 복사하지 마십시오) :
nnoremap ,b :buffer *
set wildmenu
set wildignore+=*.swp,*.bak
set wildignore+=*.pyc,*.class,*.sln,*.Master,*.csproj,*.csproj.user,*.cache,*.dll,*.pdb,*.min.*
set wildignore+=*/.git/**/*,*/.hg/**/*,*/.svn/**/*
set wildignore+=*/min/*,*/vendor/*,*/node_modules/*,*/bower_components/*
set wildignore+=tags,cscope.*
set wildignore+=*.tar.*
set wildignorecase
set wildmode=full
이를 통해 올바른 버퍼가 5-6 번 이상 키 스트로크되는 경우는 거의 없습니다.
이것은 :B
함수 호출이 :buffers
입력을 기다렸다가 마지막에 입력 을 호출 하는 명령 (및 매핑)을 제공합니다 :b
.
배리 아서 (Barry Arthur)는 몇 년 전부터 훨씬 더 간단한 솔루션을 생각해 냈습니다.
nnoremap <leader>b :ls<CR>:b<Space>
몇 년 전에 약간 더 다양한 변형을 제안했습니다.
nnoremap gb :ls<CR>:b
우리는 vim 스크립트를 이야기하고 있기 때문에, 여기에 내가 같은 명령과 같은 목록 오른쪽 명령 스텁으로하는 "자동 웁니다"명령 줄을 썼다 좋은 작은 기능입니다 :ls
또는 :ilist
. 위의 매핑에 비해 해당 기능의 장점은 특정 매핑을 기억할 필요가 없다는 것입니다. 그것은 Vim처럼 작동 하지만 약간 비틀어 집니다.
" smooth listing
cnoremap <expr> <CR> <SID>CCR()
function! s:CCR()
if getcmdtype() == ":"
let cmdline = getcmdline()
if cmdline =~ '\v\C^(dli|il)' | return "\<CR>:" . cmdline[0] . "jump " . split(cmdline, " ")[1] . "\<S-Left>\<Left>"
elseif cmdline =~ '\v\C^(cli|lli)' | return "\<CR>:silent " . repeat(cmdline[0], 2) . "\<Space>"
elseif cmdline =~ '\C^changes' | set nomore | return "\<CR>:sil se more|norm! g;\<S-Left>"
elseif cmdline =~ '\C^ju' | set nomore | return "\<CR>:sil se more|norm! \<C-o>\<S-Left>"
elseif cmdline =~ '\C^ol' | set nomore | return "\<CR>:sil se more|e #<"
elseif cmdline =~ '\C^undol' | return "\<CR>:u "
elseif cmdline =~ '\C^ls' | return "\<CR>:b"
elseif cmdline =~ '/#$' | return "\<CR>:"
else | return "\<CR>" | endif
else | return "\<CR>" | endif
endfunction
즉, 나는 "파일 기반 탐색"에 대한 "기호 기반 탐색"의 큰 지지자입니다. 해당되는 경우 기호 기반 탐색은 파일 기반 탐색보다 훨씬 빠르고 경제적입니다.
마지막 GIF는 기호 기반 탐색의 한 가지 수단을 보여줍니다 . 예제는 어리석지 만…
:ls
다음:b#
은 또한 궁금 대답?로 상당한 충분하지 않는 것 때문에 주석으로 (할 'LS'의 버퍼 목록에서 바로 갈 수 있습니다, 첫째 탈출 히트 반환해야 여부.) (게시 I 뭔가