2012-04-27 21 views
15

Yazarken bu sorunun cevabını buldum, bu yüzden biraz genişlettim. .vimrc dosyamda dinamik ayarlar oluşturmak için --servername argümanına erişmek istedim.vimscript vim komut satırı argümanlarına erişmek mümkün mü?

Vim'in yardımıyla, v:servername değişkenini buldum ve komut dizem çalışıyor. Ancak, şimdi herhangi bir keyfi komut satırı argümanına erişmenin mümkün olup olmadığını merak ediyorum. Örneğin, vim'in Lisp modunda (-l) veya Hata Ayıklama modunda (-D) olup olmadığını öğrenmek istesem nasıl yapabilirim? Onlar için karşılık gelen v: değişkeni yok gibi görünüyor.

İşte :help v:<Tab> enter image description here

vimscript gelen komut satırı argümanları erişmek için genel bir yolu var mı otomatik olarak tamamlayarak bulundu değişkenlerdir?

cevap

9

Garip bir şekilde, yanıtın "Hayır, komut satırında belirtilen başlangıç ​​seçeneklerine erişmenin doğrudan bir yolu yoktur" olabileceğini düşünüyorum.

:args komutu ve argv() komutu ve argv(), başlangıçta belirtilen dosya adlarına erişmek için kullanılabilir, ancak istediğiniz gibi değil. Birisi Linux üzerinde Başlangıç ​​komut satırı almak için bu çözümü sunduğunu Vim'ın forumlarında bakın

:

:exe '!tr "\0" " " </proc/' . getpid() . '/cmdline' 

Ben benzer komut Windows üzerinde var varsayalım. . . .

Burada öyle forum iplik üzerinde bakabilirsiniz:

http://groups.google.com/group/vim_use/browse_thread/thread/43773f27cdc10265/ad17ae8180c0fb6e?show_docid=ad17ae8180c0fb6e

+0

Teşekkürler. Çözüm, diğer cevaplara eşdeğerdir, alıntıdan dolayı doğru olarak işaretlenir. – mwcz

7

Benim googling bu özellik önerdi ancak hiçbir zaman uygulanmayan edildiğini gösterir. Ancak yine de çalışan bir kludge biraz kadar geldi: (. OS X Lion üzerinde test)

:echo split(system("ps -o command= -p " . getpid())) 
# => [ 'vim', ... arguments ... ] 

getpid() fonksiyon Vim'ın PID alır, o zaman için seçenekleri ile haricen ps çağrı İşlem için "komut" değerini döndürmeyin, ardından komutu bir listeye bölmek için split() kullanın.

+1

Teşekkürler, hack'i seviyorum. – mwcz

İlgili konular