2017-06-11 22 views
5

Parametre genişletme kapsamında !$'u kullanmanın bir yolu var mı? Bu soruyu motive eden istenen kullanım hızlıdır (tuş vuruşları açısından) bir dosyanın isminin değişmesi (örneğin, bir değişkendeki dosya ismini kaydetme ve rsvg-convert $svg > ${svg/.svg/.png}'u yürütme yerine, 'u kullanabilir, burada $!{/.svg/.png} hatalı sözdizimidir) İstenen etkiyi yaratarak, söz konusu dosya önceki satırdaki son belirteç olduğunda, böyle bir komut sık sık değişen uzunluktaki önekleri paylaşan dosyaların varlığında sekme tamamlama kullanımı gibi alternatiflerden daha hızlı yazılabilir veya kopyalayıp yapıştırabilir bir fare ile seçerek dosya adı). Anlayabildiğim kadarıyla, böyle bir bağlamda !$'u kullanmanın bir yolu yoktur, ama belki de bazı chicanery'lerle benzer bir etki elde edilebilir.

+2

'un bir ekidir. Aslında, alt +. '' 'Dan daha fazlasını kullanıyorum. Daha sonra genişletmek yerine, (emacs modunda olduğunuzu varsayarak), önceki komutun son argümanını satır içi, tamamen genişletilmiş halidir. Sondan başka kelimeler kullanıyorsanız ya da daha fazla komutu geri döndürüyorsanız bu işe yaramaz !!: - 2' veya '! Mv: 1' –

+0

@EricRenouf Bu oldukça yararlı, teşekkürler. Alt +. 'In farkında değildim, ancak önerilen kullanım için parametreden genişletilmiş bir '' $ 'bile daha hızlıdır. – user001

cevap

5

Değiştirme işlemini ne kadar karmaşık yapmak istediğinize bağlı olarak, tarih genişletme, bir dizenin diğerini ilk kez değiştirmeyi destekler. Sen En azından emacs modu bash da genişlemesi için (önceki komut satır içi son argüman değil koyacağız tüm geçmiş düzenleyiciler

here görebilirsiniz

rsvg-convert !$ > !$:s/.svg/.png 

: Sadece gibi : ile ikame önce komutu çalıştırdığınızda) alt + tuşlarına basın.. Yani bu durumda yazın en hızlı olabilir:

rsvg-convert 

sonra alt + .alt + . sonra sadece o alt + BKSP yeni uzantı ile yerine koymak uzantıyı silmek: Eğer Eric'in örnekte değiştiriciler biraz incelediğimizde ise png

+0

Hem harika öneriler, teşekkürler. – user001

2

, ayrıca yapabilirdi:

rsvg-convert !$ > !$:r.png 

.svg,