Birden fazla dosyada gezinme


11

Örneğin komut satırında birden fazla dosya ile Açık vim, varsa vim debug.log*yükler debug.log, debug.log.1ve debug.log.2ben aralarında gezinebilirsiniz, çoklu pencere (atamak :split/ :vsplit) ya da bu tür?

Bu çalışma modu için bildiğim tek kısayol :n, listedeki bir sonraki dosyayı yükleyen kısayol . Bu çoklu dosya işletim modunda daha ne yapabilirim? (veya hangi yardım konusu bunu kapsıyor?)


3
:previous(veya :prev) :nbir dosyanın tersidir ve bir dosyaya geri döner.
Zengin

Yanıtlar:


13

En alakalı yardım konusu, veya :lsolarak da bilinir .:files:buffers

Senin içinde vim debug.log*Verdiğiniz Örneğin, :lskomutu, göreceğiniz:

:ls
  1 %a   "debug.log"                    line 1
  2      "debug.log.1"                  line 0
  3      "debug.log.2"                  line 0
Press ENTER or type command to continue

… Birincisinin aktif tampon olduğunu gösterir.

debug.log.2Geçerli pencerede açmak için, arabellek 3'ü göstermesi için :b 3veya :b debug.log.2komutunu verin .

Pencereyi bölmek ve içindeki arabellek 2'yi açmak için :sb 2komutu verin . Bunun dikey bölünmüş versiyonu :vert sb 2.

:bKomutun birçok çeşidi vardır ; onlar hakkında fikir edinmek için burada belirtilen yardım konularına göz atın.


Ayrıca, vim -o debug.log*tüm dosyaları kendi bölmelerinde vim -O debug.log*açmaya veya her birini dikey bölmede açmaya çağırabilirsiniz .


6

200_success'te bahsedilen ham vim işlevine ek olarak, Vim ekosistemi ek işlevsellik sağlamak için eklentilerle doludur, örneğin:

Ancak, eklentileri kullanmaya başlamadan önce, vim'deki arabellekleri ve pencereleri tam olarak anlamak en iyisidir.


1
Lütfen eklenti önerisi yanıtlarına ilişkin politikamızı okuyun ve bu eklentilerin kullanıcıya tam olarak nasıl fayda sağlayabileceği hakkında biraz ayrıntı ekleyin.
200_success

6

Vim'i farklı parametrelerle de açabilirsiniz.

Dosyaları sekmelerde açar:

vim -p debug.log*

Dosyaları dikey bölmelerde açar:

vim -o debug.log*

CtrlSpace adlı havalı ve oldukça güçlü bir eklenti var:

https://github.com/szw/vim-ctrlspace

Birçok dosya ile çalışmanız gerekiyorsa çok kullanışlıdır. Her sekme için kendi arabellek listesi olarak ctrl-space'i hayal edebilirsiniz. Yazarın belirttiği gibi dosyalar arasında gezinmek için çok kolay bir yol sağlar:

Vim-CtrlSpace, Vim'deki çalışma alanınızı kontrol etmek ve düzenlemek için bir Vim eklentisidir. Arabellekleri, dosyaları, sekmeleri, oturumları ve son olarak projeleri yönetmeyi içerir. Yaklaşımı biraz benzersizdir, ancak özellikle zaten bölünmüş pencereler, sekmeler, tamponlar vb.Kullanıyorsanız kesinlikle kendinizi evinizde hissedeceksiniz.


Vi / Vim'e Hoşgeldiniz! Lütfen eklenti önerisi yanıtlarına ilişkin politikamızı okuyun ve eklentinin soruyu tam olarak nasıl ele aldığı hakkında biraz ayrıntı ekleyin.
200_success


4

Belirli bir dosyayı açmak zorunda kalmadan açmak istiyorsanız :ls, aşağıdakilerden herhangi birini kullanabilirsiniz:

  • :vs filename dosyayı dikey bir bölmede açar
  • :sp filename aynısını yapar, ancak yatay bir bölmede
  • :tabe filename yeni bir sekmede açılır

Bir dosya adı belirtmezseniz, geçerli dosyanın uzun bir dosya için kullanışlı olabilen yeni bir bölmesini / sekmesini açacağınızı bilmeye değer.


2
:tkopyalama komutudur. İçin :tabeditsize en az ihtiyaç :tabe.
tommcdo

Oh dang, tamamen haklısın. Teşekkürler, ben düzenleyeceğim!
Tom

0

Birden fazla dosyada gezinmek için birkaç yararlı kısayol vardır:

  • CTRL-^( Narabellek numarası nerede ) önceden düzenlenmiş dosyaya atlamak için.
  • N CTRL-^( Narabellek numarası nerede ) belirli bir arabelleğe atlamak için.

    Örneğin:

    • 1Control+^ - 1. arabelleğe git
    • 2Control+^ - 2. ara belleğe git
    • vb.

    Bu eşdeğerdir :buffer N.

  • Geçerli dizinde gezinmek için :Ex/ :Sex/ kullanın :Vex.

  • :tabsBunun yerine vim -p, bazı özel kısayollarla ( ) kullanın .vimrc:

    " TABS
    " To create a new tab (Control-T)
    nnoremap <C-t> :tabnew<CR>
    inoremap <C-t> <Esc>:tabnew<CR>
    " Tab Navigation (Control+Left <-> Control-Right, Shift+H <-> Shift+L).
    nnoremap <S-h> gT
    nnoremap <S-l> gt
    nnoremap <A-Left> gT
    nnoremap <A-Right> gt
    nnoremap <C-S-Tab> gT
    nnoremap <C-Tab> gt
    " Tab Close (Control-W)
    nnoremap <C-BS> :tabclose<CR>
    inoremap <C-BS> <Esc>:tabclose<CR>
    " Close All (Control-Q)
    nnoremap <C-q> :qa<CR>
    inoremap <C-q> <Esc>:qa<CR>
    
  • Kullanım :ba/ :vert babölünmeye, seçilmiş tampona atlama Control+w, w/ W, o zaman mevcut pencere yapmak ( :on).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.