Vim
adalah editor teks pilihan saya ketika saya memprogram, dan karena itu saya selalu mengalami masalah yang sangat mengganggu.
Seringkali, ketika saya dengan cepat perlu menyimpan buffer dan melanjutkan ke tugas lain-lain, saya melakukan yang khas
:w
Namun, saya - yang sepertinya lebih dari 50% dari waktu - selalu berhasil memanfaatkannya :w
. Tentu saja, vim meneriaki saya karena W
itu perintah yang tidak valid
E492: Not an editor command: W
Pertanyaan saya adalah bagaimana bisa satu alias perintah-usus di vim . Terutama, bisa Anda contoh bagaimana alias W
untuk w
.
Saya menyadari proses memetakan kunci ke perintah tertentu . Sayangnya, bukan itu yang saya cari.
:W
Anda bisa memetakan kunci untuk melakukan penghematan. Jika Anda terbiasa dengan beberapa program yang menyimpan dengan Ctrl-s, ada pemetaan ini dari $ VIM / mswin.vim:" Use CTRL-S for saving, also in Insert mode
noremap <C-S> :update<CR>
vnoremap <C-S> <C-C>:update<CR>
inoremap <C-S> <C-O>:update<CR>
Jawaban:
Agar penyelesaian tidak tersentuh, coba gunakan
, itu akan menggantikan
W
dalam baris perintah denganw
, tetapi hanya jika itu tidak diikuti atau didahului oleh karakter kata, jadi:W<CR>
akan diganti dengan:w<CR>
, tetapi:Write
tidak akan. (Perhatikan bahwa ini memengaruhi perintah yang cocok termasuk yang tidak Anda harapkan, misalnya perintah:saveas W Z
akan diganti:saveas w Z
, jadi berhati-hatilah dengan ini.)Memperbarui
Inilah cara saya akan menulisnya sekarang :
Sebagai fungsi:
Ini memeriksa apakah tipe perintahnya
:
dan perintahnyaW
, jadi lebih aman dari pada adilcnoreabbrev W w
.sumber
:%s/W/foo/g<CR>
:%s/w/foo/g<CR>
:cnoreabbrev <expr> W getcmdtype()==':'&&getcmdline()=~#'^W'?'w':'W'
Dengan mencari tambahan, saya telah menemukan bahwa seseorang bertanya hampir sama pertanyaan sebagai I.
akan melakukan trik.
Perlu diketahui bahwa, seperti yang ditunjukkan Richo , perintah pengguna harus dimulai dengan huruf kapital.
sumber
:command AliasName string of command to be aliased
command
argumen, seperti-nargs
,-complete
dll.:Q!
atau:W!
?:command W w
dalam.vimrc
file.Saya menemukan bahwa memetakan
;
kunci untuk:
menjadi solusi yang lebih baik, dan akan membuat Anda lebih produktif untuk mengetik perintah lain.sumber
t
atauf
, seseorang biasanya dapat menggunakan;
untuk pergi ke kejadian berikutnya. Satu dapat dengan aman memetakan itu dengan cara lain, bahkan jika Anda memetakan titik koma ke titik dua. Tidak akan ada loop alias.nnoremap : ;
Solusi terbaik melibatkan penulisan fungsi khusus untuk menangani singkatan yang hanya terjadi di awal bilah perintah.
Untuk ini, tambahkan berikut ini file vimrc Anda atau di mana pun.
Beberapa singkatan yang berguna dari bahan sumber tempat saya menemukan barang ini:
sumber
string()
yang melakukan hal yang sama seperti milik AndaSingle_quote()
.Mungkin Anda ingin memetakan salah satu tombol fungsi Anda (F1..F12) ke: w? Kemudian masukkan ini ke .vimrc Anda:
(ctrl-o dalam mode insert beralih sementara ke mode normal).
sumber
Misalkan Anda ingin menambahkan alias untuk perintah tabnew di gvim. Anda cukup mengetik perintah berikut di file .vimrc Anda (jika tidak di folder home daripada membuatnya)
sumber
:saveas t example
diganti dengan:saveas tabnew example
Paling aman dan termudah adalah plugin seperti cmdalias.vim atau pembaruan terbaru saya -alias vim yang memperhitungkannya
:sil(ent)(!)
atau:redi(r)
,'<,'>
untuk pemilihan visual saat ini,sumber