Vim'in varsayılan 'yol' seçeneği gereksiz mi?


10

Vim'in yardım belgesinden (bkz. :help 'path'):

'path' String (Unix'te varsayılan: " .,/usr/include,,")

-Geçerli dosyanın dizinine göre arama yapmak için şunu kullanın:

:set path=.

- Geçerli dizinde arama yapmak için iki virgül arasında boş bir dize kullanın:

:set path=,,

Öyle görünüyor .ve ,,'yol' seçeneğinde hiçbir farkı yok. Her ikisi de geçerli dizin anlamına gelir.

Biz de koymak gerekir neden anlayamıyorum .ve ,,yol seçeneğine. Arasındaki fark nedir :set path=.ve :set path=,,?

Yanıtlar:


14

"Geçerli dizin" ve "geçerli dosyanın dizini" iki farklı şeydir.

"Geçerli dizin" varsayılan olarak Vim'i başlattığınız dizindir. Sen onunla ne Vim sormak :pwdve bunu değiştirmek :cdveya :lcdveya ayarlayarak autochdirseçeneği. Asla değiştirmezseniz, geçerli oturumu kapatana kadar aynı kalır.

"Geçerli dosyanın dizini" tam olarak iddia ettiği şeydir. Geçerli dosya "geçerli dizinde" ise, her ikisi de aynı değere sahiptir. Geçerli dosya başka bir dizinde ise, farklı değerleri vardır.

İçin pathyararlı olduğu, olanlar iki senaryoyu ele almak gereklidir .ve ,,.

Misal:

$ cd /foo/bar/baz
$ vim filename
:pwd                   -->  /foo/bar/baz
:echo expand("%:p:h")  -->  /foo/bar/baz
:e ../file
:pwd                   -->  /foo/bar/baz
:echo expand("%:p:h")  -->  /foo/bar

7

Geçerli dosyanın dizin ve geçerli dizinde tamamen farklı şeyler (yani, ara sıra, aynı değere sahip olabilir) vardır.

Düşünmek:

cd /tmp; vim /etc/bash.bashrc

Ben autochdirayarlamam (veya benzer bir şey) sürece , geçerli dizin /tmp, ancak geçerli dosyanın dizini /etc.

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.