Dosya adı gf gibi bir imleç altında, fakat yeni bir sekmede (veya bölünmüş) açılsın mı?


43

Normal mod komutu gf, imlecin o anda bulunduğu yolu içeren bir dosyaya gider.

Ancak geçerli pencerede, geçerli metnin yerine geçer. Bu, daha sonra geriye gitmek için açıkça geriye doğru gitmeniz ve potansiyel olarak mevcut arabellekte değişiklikler yazmanız gerektiği anlamına gelir.

Bunun yerine imlecin altındaki dosyayı yeni bir sekmede açmanın mümkün olduğuna eminim?


3
'hidden'( set hidden) Seçeneğinin açılması kaydedilmemiş tamponlardan uzaklaşmanıza izin verir. Benim için bu büyük bir verimlilik yükselticisiydi ve bölünmelere ve sekmelere güvenmeyi bırakmak çok önemliydi.
tommcdo

Yanıtlar:


56

EDIT: Dikey bölme durumu için güzel simetrik eşlemeler önerin, çünkü Vim varsayılan olarak yatay bölme durumu için iki eşlemeye sahiptir.

"İmlecin altındaki dosyayı" düzenlemenin birkaç yolu vardır ve gf@ alexander-myshov'un bahsettiği gibi yeni bir sekmede düzenlemeyi kesinlikle yeniden yapabilirken , bu yeni bir sekme sayfasında düzenlemenin iki yolu vardır, ancak bunu yapmanıza gerek kalmaz geçerli pencerede düzenleyerek bazen de yapmak isteyebilirsiniz. Standart eşlemeleri kullanmak zor değildir, ancak bunlardan birini yeniden eşlemek istiyorsanız , eşlemelerini değiştirmenizigf öneririm , böylece bunlardan birini kaybetmezsiniz.

Dosya adını imlecin altında düzenleme yollarından bazıları şunlardır:

  • gf - Aynı pencerede imleç altındaki mevcut dosyayı düzenleyin
  • C-Wf - Bölünmüş pencerede imleç altındaki mevcut dosyayı düzenleyin
  • C-WC-F - Bölünmüş pencerede imleç altındaki mevcut dosyayı düzenleyin
  • C-Wgf - Yeni sekmedeki imlecin altındaki mevcut dosyayı düzenleyin

İmleç altındaki varolan dosyayı dikey bölmede düzenlemek için standart bir eşleme yoktur, ancak önce pencereyi dikey olarak bölüp sonra da mevcut pencerede imleç altındaki dosyayı düzenleyerek elde edebilirsiniz.

  • C-Wv+ gf- Dikey olarak bölünmüş pencerede imleç altındaki mevcut dosyayı düzenleyin

Yukarıda gördüğünüz gibi, imleç altındaki dosyayı yatay bölmede düzenlemek için iki varsayılan eşleme vardır. Bu nedenle, bir tanesini yukarıdaki anahtarlığa yeniden eşleyebilir, harita grubunu dikey bölünmüş durumu da kapsayacak şekilde genişletebilirsiniz. Elbette, her şeyi bağlamak, ancak bu güzel simetriyi tamamlamak için görünüyor: nnoremap <C-W><C-F> <C-W>vgf. Şimdi sahipsin

  • gf - Aynı pencerede imleç altındaki mevcut dosyayı düzenleyin
  • C-Wf - Bölünmüş pencerede imleç altındaki mevcut dosyayı düzenleyin
  • C-WC-F - Dikey olarak bölünmüş pencerede imleç altındaki mevcut dosyayı düzenleyin
  • C-Wgf - Yeni sekmedeki imlecin altındaki mevcut dosyayı düzenleyin

İmlecin altındaki dosya adını bir satır numarası izlerse, dosyadaki belirli bir satıra da gidebilirsiniz. Eğer varsa

filename:10

dosyayı düzenleyebilir ve imlecin 10. satırla hareket etmesini sağlayabilirsiniz gF. Eşdeğer C-WFbir bölme ve C-WgFbir tabpage için geçerlidir. Dikey bir bölünme için simetriyi tamamlamak buradaki kadar basit değil, ancak varsayılan haritalardan bir aday olarak veya + C-WC-S-File nnoremap <C-W><C-S-F> <C-W>vgFtaklit edilen haritanın elde edilmesini öneririm .FShiftf

:Bir örnek, bir dosya adı karakteri (bkz olmayan herhangi bir karakter kullanabilirsiniz ise :h 'isfname').


Bütün bu komutlar, elma sosu ile gelir.

  • wildchars genişlet
  • 'path'seçeneğinize göre geçerli dizinden daha fazla yere bakın
  • 'suffixesadd'seçeneğinize göre dosya adına bir dosya uzantısı ekleme
  • aksi takdirde, 'includeexpr'seçeneğinize göre, bir eşleşme bulmak için verilen dosya adını değiştirin.

Daha fazla bilgi :help gfve bu çeşitli seçenekler için yardım konularını okuyun .


İmlecin altındaki dosya adı mevcut olmayan bir dosyayı adlandırırsa, standart düzenleme komutlarını aşağıdaki <cfile>gibi kullanmak daha iyi olabilir

:edit <cfile> // edit non-existent file under cursor in current window
:split <cfile> // edit non-existent file under cursor in split window
:vsplit <cfile> // edit non-existent file under cursor in vertical split window
:tabe <cfile> // edit non-existent file under cursor in new tabpage

ve bunlarla elbette :spl+10 filenameimleci belirli bir satıra :tabe+/cologne filenametaşımak veya imleci bir modelin ilk oluşumuna taşımak gibi şeyleri kullanabilirsiniz .


+1 Açıklamalı, en iyi yorum, birkaç konuya bölünmüş belgelere göre çok daha iyi.
Olasılık

8

Bunun için sadece ciltleme kullanın:

yeni pencerede açma (bölme):

nnoremap gf <C-W>f
vnoremap gf <C-W>f

yeni bir sekmede açılış:

nnoremap gf <C-W>gf
vnoremap gf <C-W>gf

ayrıca şunu da kontrol edin: :help CTRL-W_gf


Bunlar kesinlikle sizin için çalışıyor mu? Vim benden gfbaşka bir şeye yeniden yazmamı istemiyor gibi görünüyor . Yine nnoremap gf :echo "hello"<CR> de imlecin altındaki dosyayı yeni bir tamponda açar (ve evet, vimrc kaynaklı).
tandrewnichols

Ah, boşver - Bir eklenti engelleyici var.
tandrewnichols
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.