Vim, 22 , 18 tuş vuruşlarını
O <esc>J:h r<cr>lyEZZ<C-v>{@"
Genişlediğim harika bir vim cevabıyla geldiğim için @Udioica'ya büyük kredi . Bu cevap, ödül kazanma umuduyla hiçbir yıldız işareti içermez.
Açıklama:
Giriş, programın geri kalanından önce yazılır. Udioica bu harika numara ile geldi. Yazma <n>O <esc>
, :set autoindent
etkinleştirdiğiniz sürece boşluk piramitleri ve bir boş satır oluşturur . Bu seçenek vim 8 ve neovim'de varsayılan olarak açıktır, ancak vim'in eski sürümleri değildir. Bu ayrıca fazladan bir çizgi oluşturduğundan, J
bu çizgiyi bir sonraki çizgiye dahil etmek için kullanırız, bu da sadece altındaki çizgiyi etkili bir şekilde kaldırır.
Şimdi bu noktada, tüm bu boşlukları yıldızlarla değiştirmemiz gerekiyor. Kodumdaki yıldızları kullanma konusunda endişeli olmasaydım , seçimin her karakterini yıldız işaretiyle değiştiren her şeyi <C-v>{
ve türü görsel olarak r*
seçerdim. Ama bunu yapamam.
Böylece yardım sayfalarını açarız :h r
. Bununla ilgili ilginç olan şey, vim penceresindeki bu sayfanın şu şekilde gösterilmesidir:
r
r{char} Replace the character under the cursor with {char}.
...
İmleci ilk 'r' üzerine getirin. Ancak, dosyanın kendisi aslında bu metni içerir:
*r*
r{char} Replace the character under the cursor with {char}.
...
Oldukça uygun. Bu yüzden birlikte bir karakter üzerinde hareket l
ve metin yank r*
ile yE
(bu kelimenin [E] olarak nd arasında [y] ank).
Bu tamponu kapatmak için, bir dosyayı kaydetmek için kısayolu kullanıyoruz ZZ
. Şimdi, görsel olarak boşluklarımızı seçiyoruz ve yazılan yazıyı, yazmış gibi yapıyoruz @"
. Bu çalışır çünkü "@", aşağıdaki sicili vim-keystrokes olarak çalıştırır ve "yanking için varsayılan sicildir."