Sisipkan karakter tanpa memasuki mode penyisipan?

Terkadang saya ingin memasukkan # untuk mengomentari sebuah baris dan mengujinya dengan cepat. Saat ini saya melakukan:

i#ESC:w

Apakah ada sesuatu yang lebih singkat yang bisa saya lakukan?


person alejandro    schedule 17.01.2014    source sumber
comment
kemungkinan duplikat Apa cara cepat untuk mengomentari/membatalkan komentar pada baris di Vim?   -  person ben    schedule 18.01.2014
comment
Ada banyak skrip komentar. Saya menggunakan commentary.vim: github.com/tpope/vim-commentary   -  person Peter Rincker    schedule 18.01.2014
comment
Seperti yang dikatakan orang lain, Anda mungkin ingin mencoba plugin untuk komentar. Namun secara umum, jika Anda memiliki tindakan sederhana yang perlu dilakukan sering atau berulang-ulang, Anda dapat dengan mudah membuat pemetaan atau makro.   -  person pandubear    schedule 18.01.2014


Jawaban (6)


Meskipun saya setuju dengan pendapat orang lain bahwa ada cara yang lebih baik untuk memberi komentar dan menghapus komentar pada kode, tampaknya perhatian orang-orang menjadi terganggu dan lupa untuk melakukannya. sebenarnya menjawab pertanyaan itu.

Ini adalah pendekatan saya untuk memasukkan satu karakter:

:noremap <key> i <Esc>r

Saya cenderung merasa perlu mengganti, menghapus, atau menambahkan karakter tunggal sangat sering jika saya memperbaiki kesalahan ketik, jadi (resp.) r, x, dan apa pun yang dipilih untuk <key> di atas menjadi sangat berguna.

Perhatikan bahwa . juga sangat berguna untuk tugas semacam ini. Ini mengulangi tindakan sebelumnya.

Namun secara pribadi, saya hanya memetakan fungsi ini ke kunci yang berharga ketika saya melakukan tugas di mana saya menggunakannya cukup sering untuk membenarkan menempati tempat utama pada keyboard (seperti memperbaiki kesalahan ketik), karena sebenarnya, ini hanya menghemat satu penekanan tombol per gunakan dan itu hanya jika <key> bukan kombinasi, yang tentu saja membatasi ketersediaan.

person James Haigh    schedule 01.03.2014
comment
mungkin itu hanya menghemat satu pukulan kunci, tetapi juga menghemat beban mental dari peralihan mode, yang seharusnya terasa signifikan dalam vim. - person Adam Tolley; 10.06.2016
comment
Pemetaan ini tidak berfungsi dengan . - person Sparhawk; 29.05.2017

Saya memetakan beberapa hal ke kunci <leader> saya (\ secara default):

" # comment the current line
nnoremap <leader>d I#<ESC>

" block comment in visual mode
vnoremap <leader>c <ESC>'<O/*<ESC>'>o*/<ESC>V'<k

Jika Anda ingin menambahkan # ke awal sekelompok baris, lakukan ini:

  1. <ctl-v>
  2. j (sebanyak yang diperlukan
  3. I#
  4. <esc>
person Wayne    schedule 18.01.2014

Anda bisa menggunakan rekaman. Dari mode normal, ketik:

qlml0i#<press escape>`lq

Kemudian untuk mengomentari satu baris, cukup tekan @l

person Community    schedule 17.01.2014

Pemetaan di vim sangat mudah sehingga saya bisa melakukan sesuatu seperti

:nmap CC I#<Esc>:w<CR>

dengan cepat. Jika saya sudah terbiasa, maka saya akan menambahkannya ke file vimrc saya.

:help key-mapping
:help usr_40.txt
person benjifisher    schedule 18.01.2014

Sebenarnya ada plugin yang mungkin ingin Anda lihat:

http://www.vim.org/scripts/script.php?script_id=1218

Ini dirancang khusus untuk tujuan itu.

person ben    schedule 17.01.2014

Saya sangat menyukai plugin tComment. gcc untuk mengomentari satu baris, ulangi untuk membatalkan komentar, beberapa baris, gerakan, dll.

person rojs    schedule 18.01.2014