Herhangi bir dosya adı verilmediğinde Vim'in varsayılan bir dosya adını kullanmasını nasıl sağlayabilirim?


17

Nadiren vimdosya isimleri olmadan açarım . Genellikle, bir şeyi test etmek istiyorum, genellikle hızlı bir atılabilir komut dosyası ve genellikle onları adlandırıyorum test.sh(veya bunun bir varyantı gibi test.py). Herhangi vimbir test.shdosya adı vimolmadan çalıştırırsam dosya adını alabilir miyim? Genellikle (gibi adlar kullanmayı tercih ediyorum vimsiçin vim test.shve vimpiçin vim test.py, ya da bütün go :w test.sh) ama içinden bir yol varsa acaba vim. Bunu /tmpveya gibi belirli dizinlerle sınırlayabilirsem daha iyi olurdu ~/dev.

Yanıtlar:


10

Bunu .vimrc'nizin sonuna koymayı deneyin (uygun şekilde değiştirin)

if @% == "" && getcwd() == "/tmp"
    :silent edit test.sh
endif

Bu, geçerli dosya adının boş olup olmadığını ( @%geçerli dosya adına başvurur) ve vim'in geçerli dizininin olup olmadığını kontrol eder /tmp. Diğer dizinleri de ekleyebilirsiniz.

(getcwd() == "/tmp" || getcwd() == "~/dev")

Daha sonra sessizce test.sh. Bu dosya zaten varsa, dosyayı yükler. Aksi takdirde, bu adla yeni bir arabellek başlatırsınız ve dosya yazarsanız dosya oluşturulur.

Başlangıç ​​sırasında aşağıdaki mesajı bastırmak için sessiz çalıştım:

"test.sh" [New File]
Press ENTER or type command to continue

5

John'un cevabındaki bir değişiklik yararlı olabilir:

if @% == "" && getcwd() == "/tmp"
    :silent edit `=glob("test\.*", 1, 1)[0]`
endif

Bu, ile başlayan ilk dosyayı açar test..

Yalnızca ilk dosya yerine, diğer eşleşen dosyaları da açmak istiyorsanız, şunları yapın:

if @% == "" && getcwd() == "/tmp"
    for i in glob("test\.*", 1, 1)
        :silent edit `=i`
    endfor
endif
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.