Saya memiliki file kode Ruby terbuka di vi, ada baris yang dikomentari dengan #
:
class Search < ActiveRecord::Migration
def self.up
# create_table :searches do |t|
# t.integer :user_id
# t.string :name
# t.string :all_of
# t.string :any_of
# t.string :none_of
# t.string :exact_phrase
#
# t.timestamps
# end
end
def self.down
# drop_table :searches
end
end
Katakanlah saya ingin menghapus komentar semua baris di bagian pertama def ... end
. Apa cara yang efisien untuk melakukan itu di Vim?
Secara umum, saya mencari cara yang mudah dan lancar untuk berkomentar dan menghapus komentar. Di sini saya berurusan dengan kode Ruby, tetapi bisa berupa JavaScript ( //
) atau Haml ( -#
).
Jawaban:
Saya menggunakan skrip NERD Commenter . Ini memungkinkan Anda dengan mudah mengomentari, menghapus komentar atau mengganti komentar dalam kode Anda.
Seperti disebutkan dalam komentar :
sumber
=begin
dan=end
mengomentari banyak baris alih-alih tag hash.Untuk tugas-tugas itu saya menggunakan sebagian besar pemilihan blok waktu .
Letakkan kursor Anda pada
#
karakter pertama , tekan CtrlV(atau CtrlQuntuk gVim), dan turun sampai baris komentar terakhir dan tekan x, yang akan menghapus semua#
karakter secara vertikal.Untuk mengomentari blok teks hampir sama:
VISUAL BLOCK
mode.INSERT
mode dan kemudian tekan #. Ini akan menambahkan hash ke baris pertama.#
karakter pada semua baris yang dipilih lainnya.Untuk versi singkat dari vim yang dikirimkan dengan debian / ubuntu secara default, ketik
: s/^/#
langkah ketiga sebagai gantinya (setiap penyorotan yang tersisa dari karakter pertama dari setiap baris dapat dihapus dengan:nohl
).Berikut adalah dua rekaman layar kecil untuk referensi visual.
Komentar:
Tanda komentar:
sumber
n
(di mana n adalah garis num - 1), j,n
(di mana n num jumlah panjang urutan karakter komentar - 1), l, x.Untuk mengomentari blok di vim:
%
Untuk menghapus tanda komentar pada blok di vim:
Jika Anda ingin memilih beberapa karakter, gunakan satu atau gabungkan metode ini:
sumber
Kadang-kadang saya dimasukkan ke kotak jauh di mana plugin dan .vimrc saya tidak dapat membantu saya, atau kadang-kadang NerdCommenter salah melakukannya (mis. JavaScript tertanam di dalam HTML).
Dalam kasus ini alternatif teknologi rendah adalah
norm
perintah bawaan, yang hanya menjalankan perintah vim sewenang-wenang di setiap baris dalam rentang yang Anda tentukan. Sebagai contoh:Berkomentar dengan
#
:Ini memasukkan "#" di awal setiap baris. Perhatikan bahwa saat Anda mengetik: rentang akan diisi, sehingga akan benar-benar terlihat
:'<,'>norm i#
Tidak berkomentar
#
:Ini menghapus karakter pertama dari setiap baris. Jika saya menggunakan komentar 2-char seperti // maka saya cukup lakukan
:norm xx
untuk menghapus kedua karakter tersebut.Jika komentar diindentasikan seperti dalam pertanyaan OP, maka Anda dapat membuang jangkar seperti ini:
yang berarti "pergi ke karakter non-spasi pertama, lalu hapus satu karakter". Perhatikan bahwa tidak seperti pemilihan blok, teknik ini berfungsi bahkan jika komentar memiliki indentasi yang tidak rata!
Catatan : Karena
norm
secara harfiah hanya menjalankan perintah vim biasa, Anda tidak terbatas pada komentar, Anda juga dapat melakukan beberapa pengeditan kompleks untuk setiap baris. Jika Anda memerlukan karakter escape sebagai bagian dari urutan perintah Anda, ketik ctrl-v lalu tekan tombol escape (atau bahkan lebih mudah, cukup rekam makro cepat dan kemudian gunakan norma untuk mengeksekusi makro itu di setiap baris).Catatan 2 : Anda tentu saja dapat juga menambahkan pemetaan jika Anda menemukan diri Anda menggunakan
norm
banyak. Misalnya, memasukkan baris berikut ke ~ / .vimrc memungkinkan Anda mengetikctrl-n
alih-alih:norm
setelah membuat pilihan visualCatatan 3 : Bare-bones vim terkadang tidak memiliki
norm
perintah yang dikompilasi ke dalamnya, jadi pastikan untuk menggunakan versi yang ditingkatkan, yaitu biasanya / usr / bin / vim, bukan / bin / vi(Terima kasih kepada @Manbroski dan @rakslice untuk peningkatan yang dimasukkan ke dalam jawaban ini)
sumber
:norm ^x
. Metode ini secara umum memiliki keuntungan bekerja dengan pemilihan wilayah (misalnyavi{
akan memilih kurung kurawal di dalam). Selektor objek teks semacam itu tidak bekerjaVisual Block
./bin/vi
itu vim 7.2, tapi itu build yang berbeda dari/usr/bin/vim
, dan memiliki fitur seperti ini dimatikan.vip
untuk memilih seluruh paragraf.Saya memiliki yang berikut ini di
.vimrc
:Sekarang Anda dapat mengetik
,cc
untuk mengomentari garis dan,cu
menghapus tanda komentar garis (berfungsi baik dalam mode normal dan visual).(Saya mencurinya dari beberapa situs web bertahun-tahun yang lalu jadi saya tidak bisa sepenuhnya menjelaskan cara kerjanya lagi :). Ada komentar yang menjelaskannya.)
sumber
Tentukan baris mana yang akan dikomentari dalam vim:
Mengungkapkan nomor baris:
kemudian
atau ini:
sumber
:%s/^/#/g
komentar semua baris? Saya ingin tahu tanda persennya%
va{
atau denganvar
untuk ruby.Inilah cara saya melakukannya:
Pergi ke karakter pertama pada baris pertama yang ingin Anda komentari.
Tekan Ctrl+ qdi GVIM atau Ctrl+ vdi VIM, lalu turun untuk memilih karakter pertama pada baris untuk berkomentar.
Kemudian tekan c, dan tambahkan karakter komentar.
Uncommenting bekerja dengan cara yang sama, cukup ketikkan spasi alih-alih karakter komentar.
sumber
c
menghapus karakter pertama juga. Jawaban CMS benar yaitu menekanI
kemudian mengetik karakter komentar dan kemudianEsc
(ini ada di windows vim)ESC
dua kali setelah menekanc
dan yang seharusnya melakukan trikSaya telah datang dengan tambahan sederhana untuk file .vimrc saya yang berfungsi dengan cukup baik dan dapat diperpanjang dengan mudah. Anda cukup menambahkan filetype baru ke comment_map dan pemimpin komentarnya.
Saya menambahkan pemetaan ke mode normal dan visual, tetapi Anda dapat memetakan kembali apa pun yang Anda suka. Saya lebih suka hanya memiliki fungsi gaya 'toggle'. Satu beruang memiliki beberapa pemetaan dll.
catatan:
Saya tidak menggunakan callback atau kait apa pun ke dalam tipe file / memuat, karena saya menemukan mereka memperlambat startup Vim lebih dari
.vimrc
fungsi statis / peta tetapi itu hanya preferensi saya. Saya juga mencoba membuatnya tetap sederhana dan performan. Jika Anda menggunakan perintah otomatis, Anda harus memastikan untuk memasukkannya ke dalam grup perintah otomatis atau jika tidak, callback akan ditambahkan ke tipe file beberapa kali per file yang dimuat dan menyebabkan banyak penurunan kinerja.sumber
<leader><Space>
Deklarasi apa yang ada di bawah?\zs
dan\ze
regex, kode menjadi sedikit lebih kecil. Anda bisa melihatnya di siniAlihkan komentar
Jika semua yang Anda butuhkan adalah beralih komentar saya lebih suka pergi dengan commentary.vim oleh tpope .
Instalasi
Patogen:
vim-plug:
Vundle:
Kustomisasi lebih lanjut
Tambahkan ini ke file .vimrc Anda:
noremap <leader>/ :Commentary<cr>
Anda sekarang dapat beralih komentar dengan menekan
Leader
+/
, seperti Sublime dan Atom.sumber
Gunakan Control-V untuk memilih persegi panjang teks: buka
#
karakter pertama , ketik Ctrl+ V, geser ke kanan satu kali, lalu ke bawah, hingga akhir komentar. Sekarang ketikx
: Anda menghapus semua#
karakter diikuti oleh satu spasi.sumber
Ini bagian dari saya
.vimrc
:Dalam mode normal dan visual, ini memungkinkan saya menekan ,icuntuk memasukkan komentar dan ,rcmenghapus komentar.
sumber
.vimrc
.map
mencakup mode normal dan visual, jadi Anda tidak perluvmap
garisafter/ftplugin/ruby.vim
.<leader>ic
dan<leader>rc
Saya menggunakan vim 7.4 dan ini berfungsi untuk saya.
Dengan asumsi kami mengomentari / menghapus komentar 3 baris.
Untuk berkomentar:
jika baris tidak memiliki tab / ruang di awal:
ctrl + V
makajjj
kemudianshift + I (cappital i)
kemudian//
kemudianesc esc
jika baris memiliki tab / ruang di awal Anda masih bisa melakukan hal di atas atau swap
c
:ctrl + V
makajjj
kemudianc
kemudian//
kemudianesc esc
Untuk tanda komentar:
jika garis tidak memiliki tab / spasi di awal:
ctrl + V
lalujjj
makall (lower cap L)
kemudianc
jika garis memiliki tab / ruang di awal, maka Anda satu ruang atas dan
esc
ctrl + V
kemudianjjj
kemudianll (lower cap L)
kemudianc
kemudianspace
kemudianesc
sumber
Saya suka menggunakan plugin tcomment: http://www.vim.org/scripts/script.php?script_id=1173
Saya telah memetakan gc dan gcc untuk mengomentari baris atau blok kode yang disorot. Ini mendeteksi jenis file dan bekerja dengan sangat baik.
sumber
Dengan 30 jawaban di depan saya, saya akan mencoba memberikan solusi yang lebih mudah: Masukkan a
#
di awal baris. Lalu turun satu baris dan tekan dot (.
). Untuk ulangi, janganj
,.
,j
,.
, dll ... Untuk tanda komentar, menghapus#
(Anda dapat menekanx
atas#
), dan melakukan sebaliknya menggunakank
,.
, dll ...sumber
I#<Esc>j
ke buffer - katakan,c
- dan kemudian lakukan10@c
, atau berapa pun jumlah baris yang cocok untuk Anda.Cara menghapus komentar pada tiga baris berikut in vi:
Tempatkan kursor di atas
#
simbol kiri atas dan tekan CtrlV. Ini menempatkan Anda dalam mode blok visual. Tekan panah bawah atau Jtiga kali untuk memilih ketiga garis. Lalu tekan D. Semua komentar hilang. Untuk membatalkan, tekan U.Bagaimana mengomentari tiga baris berikut di vi:
Tempatkan kursor di atas karakter kiri atas, tekan CtrlV. Ini menempatkan Anda dalam mode blok visual. Tekan ↓atau Jtiga kali untuk memilih ketiga garis. Lalu tekan:
I//Esc
Itu modal saya, //, dan Escape.
Saat Anda menekan ESC, semua baris yang dipilih akan mendapatkan simbol komentar yang Anda tentukan.
sumber
Ya, sudah ada 33 (kebanyakan berulang) jawaban untuk pertanyaan ini.
Berikut adalah pendekatan lain tentang cara mengomentari kalimat di Vim: motions . Ide dasarnya adalah mengomentari atau menghapus komentar baris menggunakan metode yang sama seperti menarik paragraf dengan mengetik
yip
atau menghapus 2 baris dengan mengetikdj
.Pendekatan ini akan memungkinkan Anda melakukan hal-hal seperti:
ccj
untuk mengomentari 2 baris berikutnya, dancuk
menghapus komentar mereka;cci{
untuk mengomentari blokir, dancui{
untuk menghapus komentar itu;ccip
untuk mengomentari seluruh paragraf, dancuip
membatalkan komentar itu.ccG
untuk mengomentari semuanya sampai ke baris terakhir, dancugg
untuk membatalkan komentar semuanya sampai ke baris pertama.Yang Anda butuhkan adalah 2 fungsi yang beroperasi lebih dari gerakan , dan 2 pemetaan untuk setiap fungsi. Pertama, pemetaan:
(Lihat manual tentang
g@
operator danoperatorfunc
variabelnya.)Dan sekarang fungsinya:
Ubah ekspresi reguler di atas agar sesuai dengan selera Anda di mana
#
seharusnya:sumber
Jika Anda sudah tahu nomor baris, maka
n,ms/# //
akan berhasil.sumber
Saya menandai baris pertama dan terakhir (ma dan mb), dan kemudian melakukan: 'a,' bs / ^ # //
sumber
Saya menggunakan EnhancedCommentify . Ini komentar semua yang saya butuhkan (bahasa pemrograman, skrip, file konfigurasi). Saya menggunakannya dengan binding mode visual. Cukup pilih teks yang ingin Anda komentari dan tekan co / cc / cd.
sumber
Saya menggabungkan jawaban Phil dan jqno dan membuat komentar tanpa tanda dengan spasi:
sumber
Ada plugin yang mengubah hidup ini dengan
tpope
meneleponvim-commentary
https://github.com/tpope/vim-commentary
Plugin ini menyediakan :
Penggunaan :
:<,'>
:<,'>Commentary
dan tekan Enter.sumber
vim-commentary
(seperti semua plugin tpope) memiliki bonus menjadi idiom vim.gc
= "go comment",gcap
= "go comment a paragraph", etc.Jawaban ini sangat berguna jika Anda tidak dapat menginstal plugin tetapi Anda masih ingin karakter komentar Anda mengikuti level indentasi yang ada.
Jawaban ini ada di sini untuk 1) menunjukkan kode yang benar untuk ditempel ke dalam
.vimrc
untukvim 7.4+
melakukan blok komentar / komentar sambil menjaga tingkat lekukan dengan 1 pintasan dalam mode visual dan 2) untuk menjelaskannya. Ini kodenya:Bagaimana itu bekerja:
let b:commentChar='//'
: Ini menciptakan variabel dalam vim. dib
sini mengacu pada ruang lingkup, yang dalam hal ini terkandung ke buffer, yang berarti file yang sedang dibuka. Karakter komentar Anda adalah string dan perlu dibungkus dengan tanda kutip, tanda kutip itu bukan bagian dari apa yang akan diganti ketika bertukar komentar.autocmd BufNewFile,BufReadPost *...
: Perintah otomatis memicu pada hal-hal yang berbeda, dalam hal ini, ini memicu ketika file baru atau file baca berakhir dengan ekstensi tertentu. Setelah dipicu, jalankan perintah berikut, yang memungkinkan kita untuk mengubahcommentChar
tergantung pada tipe file. Ada cara lain untuk melakukan ini, tetapi mereka lebih membingungkan bagi pemula (seperti saya).function! Docomment()
: Fungsi dideklarasikan dengan mulaifunction
dan diakhiri denganendfunction
. Fungsi harus dimulai dengan modal. itu!
memastikan bahwa fungsi ini menimpa setiap fungsi sebelumnya yang didefinisikanDocomment()
dengan versi iniDocomment()
. Tanpa!
, saya memiliki kesalahan, tapi itu mungkin karena saya mendefinisikan fungsi baru melalui baris perintah vim.execute '''<,''>s/^\s*/&'.escape(b:commentChar, '\/').' /e'
: Jalankan panggilan perintah. Dalam hal ini, kami mengeksekusisubstitute
, yang dapat mengambil rentang (secara default ini adalah baris saat ini) seperti%
untuk seluruh buffer atau'<,'>
untuk bagian yang disorot.^\s*
adalah regex untuk mencocokkan awal baris diikuti oleh jumlah spasi, yang kemudian ditambahkan ke (karena&
). Di.
sini digunakan untuk penggabungan string, karenaescape()
tidak dapat dibungkus dengan tanda kutip.escape()
memungkinkan Anda untuk keluar dari karaktercommentChar
yang cocok dengan argumen (dalam hal ini,\
dan/
) dengan menambahkannya dengan a\
. Setelah ini, kami menyatukan lagi dengan ujungsubstitute
senar kami , yang memilikie
bendera. Bendera ini memungkinkan kita gagal secara diam-diam, artinya jika kita tidak menemukan kecocokan pada baris yang diberikan, kita tidak akan berteriak tentang hal itu. Secara keseluruhan, baris ini memungkinkan kita menempatkan karakter komentar diikuti oleh spasi tepat sebelum teks pertama, yang berarti kita menjaga tingkat indentasi kita.execute '''<,''>s/\v(^\s*)'.escape(b:commentChar, '\/').'\v\s*/\1/e'
: Ini mirip dengan perintah besar terakhir kami. Unik untuk yang satu ini, kami punya\v
, yang memastikan bahwa kami tidak harus melarikan diri dari kami()
, dan1
, yang mengacu pada grup yang kami buat dengan kami()
. Pada dasarnya, kami mencocokkan garis yang dimulai dengan jumlah spasi putih apa pun dan kemudian karakter komentar kami diikuti oleh jumlah spasi putih apa pun, dan kami hanya menyimpan set spasi putih pertama. Sekali lagi,e
mari kita gagal secara diam-diam jika kita tidak memiliki karakter komentar di baris itu.let l:line=getpos("'<")[1]
: ini menetapkan variabel seperti yang kami lakukan dengan karakter komentar kami, tetapil
merujuk ke lingkup lokal (lokal ke fungsi ini).getpos()
mendapat posisi, dalam hal ini, awal dari penyorotan kami, dan[1]
sarana kami hanya peduli dengan nomor baris, bukan hal-hal lain seperti nomor kolom.if match(getline(l:line), '^\s*'.b:commentChar)>-1
: Anda tahu caraif
kerjanya.match()
memeriksa apakah hal pertama berisi hal kedua, jadi kami mengambil garis yang kami mulai sorot kami, dan memeriksa apakah itu dimulai dengan spasi putih diikuti oleh karakter komentar kami.match()
mengembalikan indeks di mana ini benar, dan-1
jika tidak ada kecocokan yang ditemukan. Karenaif
mengevaluasi semua angka bukan nol itu benar, kita harus membandingkan output kita untuk melihat apakah itu lebih besar dari -1. Perbandingan dalamvim
pengembalian 0 jika salah dan 1 jika benar, yangif
ingin dilihat untuk mengevaluasi dengan benar.vnoremap <silent> <C-r> :<C-u>call Comment()<cr><cr>
:vnoremap
berarti memetakan perintah berikut dalam mode visual, tetapi jangan memetakannya secara rekursif (artinya tidak mengubah perintah lain yang mungkin digunakan dengan cara lain). Pada dasarnya, jika Anda seorang pemula, selalu gunakannoremap
untuk memastikan Anda tidak merusak barang-barang.<silent>
berarti "Saya tidak ingin kata-kata Anda, hanya tindakan Anda" dan mengatakan itu untuk tidak mencetak apa pun ke baris perintah.<C-r>
adalah hal yang kami pemetaan, yaitu ctrl + r dalam hal ini (perhatikan bahwa Anda masih dapat menggunakan Cr secara normal untuk "redo" dalam mode normal dengan pemetaan ini).C-u
agak membingungkan, tetapi pada dasarnya itu memastikan Anda tidak kehilangan jejak penyorotan visual Anda (menurut jawaban ini membuat perintah Anda mulai dengan'<,'>
apa yang kita inginkan).call
di sini hanya memberitahu vim untuk menjalankan fungsi yang kita beri nama, dan<cr>
mengacu pada menekanenter
tombol. Kita harus menekannya sekali untuk benar-benar memanggil fungsi (jika tidak kita baru saja mengetikcall function()
pada baris perintah, dan kita harus menekannya lagi untuk mendapatkan pengganti kita untuk pergi sepanjang jalan (tidak benar-benar yakin mengapa, tapi apa pun).Bagaimanapun, semoga ini membantu. Ini akan mengambil apa pun yang disorot dengan
v
,,V
atauC-v
, periksa apakah baris pertama dikomentari, jika ya, coba batalkan komentar pada semua baris yang disorot, dan jika tidak, tambahkan lapisan karakter komentar tambahan untuk setiap baris. Inilah perilaku yang saya inginkan; Saya tidak hanya ingin beralih apakah setiap baris di blok dikomentari atau tidak, jadi itu berfungsi dengan baik bagi saya setelah mengajukan beberapa pertanyaan pada subjek.sumber
Saya menggunakan plugin vim-commentary Tim Pope .
sumber
Anda dapat menggunakan vim-commentary oleh tpope ( https://github.com/tpope/vim-commentary ) Anda dapat menggunakannya sebagai berikut:
Masuk ke mode visual dengan menekan
Lalu tekan
Sekarang yang harus Anda lakukan dengan pemilihan adalah memasukkan kunci:
Ini akan mengomentari semua pilihan, untuk membatalkan komentar kunci kunci:
sumber
Berikut adalah satu-kapal dasar berdasarkan
C-v
diikuti olehI
metode yang diuraikan di atas.Perintah ini (
:Comment
) menambahkan string yang dipilih ke awal setiap baris yang dipilih.Tambahkan baris ini ke Anda
.vimrc
untuk membuat perintah yang menerima argumen tunggal dan menempatkan argumen di awal setiap baris dalam pilihan saat ini.Misalnya jika teks berikut dipilih:
dan Anda menjalankan ini
:Comment //
:, hasilnya adalah:sumber
Dimulai dengan ide-ide dalam jawaban di sini, saya memulai fungsi komentar saya sendiri. Ini mengaktifkan dan menonaktifkan komentar. Itu dapat menangani hal-hal seperti
//print('blue'); //this thing is blue
dan hanya mengubah komentar pertama. Selain itu menambahkan komentar dan ruang tunggal di mana spasi pertama bukan dan tidak di awal baris. Secara tradisional itu tidak perlu menyalin spasi putih, tetapi menggunakan zoom (: h \ zs untuk bantuan) untuk menghindari pekerjaan ekstra ini, ketika mengomentari dan membuat indentasi baris. Semoga ini membantu beberapa minimalis di luar sana. Saran diterima.sumber
Saya menggunakan comments.vim dari Jasmeet Singh Anand (ditemukan di vim.org),
Ia bekerja dengan C, C ++, Java, PHP [2345], proc, CSS, HTML, htm, XML, XHTML, vim, vimrc, SQL, sh, ksh, csh, Perl, tex, fortran, ml, caml, ocaml, vhdl, haskel, dan file normal
Ini komentar dan tanda komentar pada file sumber yang berbeda dalam mode normal dan visual
Pemakaian:
sumber
Metode tercepat dan paling intuitif dari mereka semua adalah untuk memetakan ulang
)
komentar(
berjalan-jalan , dan kemudian untuk walk-up-uncommenting. Cobalah dan Anda tidak akan kembali.Di Ruby atau Bash , dengan indentasi 2-ruang:
Dalam C / C ++ atau PHP , dengan indentasi 4-ruang:
Kekurangannya adalah Anda kalah
(
dan)
untuk pergerakan kalimat (tetapidas
bisa mengisi di sana), dan Anda akan sesekali kembali memilih dan mengganti atau CtrlVuntuk menangani bagian yang panjang. Tapi itu cukup langka.Dan untuk C-style, komentar panjang paling baik ditangani dengan:
... Yang menggabungkan dengan baik dengan menggunakan
V[move]gq
untuk mengulangi pembungkus kata.sumber
Cuplikan sederhana ini dari .vimrc saya:
Ini untuk // - Komentar, tetapi Anda dapat menyesuaikannya dengan mudah untuk karakter lain. Anda bisa menggunakan autocmd untuk menetapkan pemimpin seperti yang disarankan jqno.
Ini adalah cara yang sangat sederhana dan efisien bekerja dengan rentang dan mode visual secara alami.
sumber
Saya suka
/* ... */
(komentar C ansi), jadi ini trik saya untuk Anda. Anda dapat menyesuaikannya untuk digunakan dalam kasus yang berbeda, tentu saja.Komentar dengan / * ... * /
Pilih teks (pergi ke awal, mulai blok visual, lompat dengan
}
):Ketik perintah yang akan diterapkan dalam seleksi
Perintah akan terlihat seperti:
:'<,'>norm i /* ^[$a */
Lihat (i *) untuk detailnya.
Batalkan komentar pada / * ... * /
Pilih teks (seperti sebelumnya, atau dengan cara lain yang Anda suka):
Ketik perintah yang akan diterapkan dalam seleksi
Perintah akan terlihat seperti:
:'<,'>norm :s-\s*/\*\s*-^M$bbld$
Lihat (ii *) untuk detailnya.
Hasil
Efeknya adalah komentar baris demi baris:
Menjadi (dan sebaliknya):
Lebih baik menyimpannya sebagai beberapa
map
atau@reg
di Anda.vimrc
, karena banyak untuk mengetik. Jika Anda lebih suka satu/*
dan*/
seluruh blok, gunakan:Komentar dengan satu / * * / seluruh blok
Simpan di register dengan merekam, katakan
qc
,, lalu, di awal paragraf untuk berkomentar:dan jangan lupa
q
lagi, untuk menyelesaikan catatan.Lihat (iii *) untuk detailnya.
Hapus komentar satu / * * / dari satu blok
Simpan dalam register, katakan
@u
,. Letakkan kursor Anda di mana saja di dalam blok, dan:Simpan register dengan menyelesaikan
q
perintah.Lihat (iv *) untuk detailnya.
Hasil
Efek adalah komentar tunggal untuk banyak baris:
Menjadi (dan sebaliknya):
Penjelasan
(i *) Ini bekerja dengan menggunakan
norm
yang menerapkan perintah yang sama berulang kali di setiap baris yang dipilih. Perintah cukup memasukkan a/*
, menemukan ujung garis itu dan selesai dengan memasukkan a*/
(ii *) Ini juga digunakan
norm
untuk mengulang pencarian / ganti pada setiap baris. Carispaces /* spaces
dan ganti tanpa apa-apa. Setelah itu, temukan ujung kalimat, kembalikan dua kata, kanan huruf, hapus sampai akhir.(iii *) Memilih paragraf dengan
v}
, menghapusnya, menyisipkan komentar membuka dan menutup, pindah ke tengah dan tempel blok yang dihapus.(iv *) Di mana saja di tengah, temukan mundur a
/*
, hapus; menemukan maju*/
, menghapusnya.sumber