Vim; Pintasan untuk menambahkan komentar di awal baris

1

Ketika saya membuat kode, saya cenderung melakukan banyak hal berikut secara manual setelah memilih beberapa baris kode.

:'<,'>s/^/#/

Saya ingin menambahkan ini ke .vimrc saya tetapi saya kesulitan membuatnya berfungsi. Tujuannya adalah untuk dapat memilih satu set garis dan kemudian tekan mapleader c dan vim akan menambahkan # tambahan di awal semua baris yang dipilih.

1 " Key mapping.                                                                                                                                                      
2 let mapleader = ","
...
141 nmap <silent> <leader>c :<'>'s/^/#/<CR>

Baris 141 tampaknya hanya menghapus baris yang dipilih dan saya mengalami kesulitan melihat mengapa ini. Adakah ide yang saya lakukan salah atau apa yang bisa saya ubah agar ini berhasil?

Mogget
sumber
1
Anda juga dapat mempertimbangkan plugin NerdCommenter btw., Yang dapat melakukan ini dan lebih banyak lagi: github.com/scrooloose/nerdcommenter
miyalys
1
@miyalys, saya cukup puas dengan pengaturan yang saya miliki saat ini dan saya hanya ingin menambahkan opsi tertentu. Saya merasa bahwa menambahkan plugin kaya fitur hanya untuk membuat saya ini sedikit berlebihan. Terima kasih atas sarannya.
Mogget
3
Baiklah, saya tidak yakin mengapa Anda menggunakan nmapjika Anda ingin memilih garis visual modeterlebih dahulu, tetapi jika Anda masih ingin memilih garis pertama dalam mode visual saya punya saran untuk vimrc, namun sepertinya saya tidak bisa mendapatkannya bekerja dengan <pemimpin> c untuk beberapa alasan (mungkin <pemimpin> c akan bekerja untuk Anda): vmap <silent> t :s/^/#/<CR>:let @/ = ""<CR>. Jika ini menyelesaikan masalah Anda, saya akan menuliskannya sebagai jawaban.
miyalys
1
@ Magget, pada baris 141 <'>'harus '<,'>(urutan salah dan missin ","); juga mendefinisikannya untuk mode visual ( vmap ...)
JJoao

Jawaban:

2

Coba ini: ini melakukan penyisipan blok saat dalam mode visual

vmap <silent> <leader>c :norm i#<ESC>
Isaac Hanson
sumber
0

Ini adalah replika tepat dari baris yang diberikan @miyalys dalam komentar dan berfungsi persis seperti yang saya inginkan.

vmap <silent> t :s/^/#/<CR>:let @/ = ""<CR>

Dia bilang dia tidak bisa membuatnya bekerja dengan c, tapi aku berhasil dengan karakter itu.

Terima kasih.

Mogget
sumber