Bayangkan Anda ingin mengutip kata di bawah ini. Jika |
posisi kursor Anda dapat dengan mudah mengutip kata cw""<Esc>P
dari dari mode Normal.
|below
Saya ingin mencapai perilaku yang sama dalam mode Command-line. Pertanyaan saya adalah bagaimana saya bisa mengatakan ke mode Command-line bahwa saya ingin mengetikkan <Esc>
. Saya mencoba :norm cw""<Esc>P
dan beberapa variasi lain tetapi saya hanya mendapatkan ""<Esc>P
bukan "below"
.
Masih terkait dengan ini, saya ingin tahu bagaimana saya bisa membuat jenis perintah Command-line mode Ctrl. Sebagai contoh, saya dapat mengutip kata tersebut di atas cw"<C-r>""<Esc>
sebagai gantinya. Tapi kemudian saya akan perlu baris perintah untuk mengetik <C-r>
untuk saya. Bagaimana saya bisa melakukan ini?
command-line
Gonçalo Ribeiro
sumber
sumber
<C-x><C-e>
di readline untuk mengedit baris perintah di$EDITOR
, Anda harus<C-f>
di Vim untuk membuka jendela baris perintah. Lihat:help cmdline-window
.Jawaban:
<C-v>
adalah apa yang kamu cari. Ini memungkinkan Anda untuk memasukkan karakter literal (mis., LiteralEsc
alih-alih string "Esc") tanpa mengharuskan Anda melarikan diri dari apa pun.ditampilkan sebagai:
dan akan melakukan apa yang Anda inginkan (yaitu, kutip kata). Anda juga dapat menggunakan ini dengan
<C-?>
pemetaan lainnya . Misalnya, permintaan kedua Anda:ditampilkan sebagai:
Dan akan menghasilkan sama seperti di atas. Tidak perlu memasukkan ekstra
Esc
di akhir.sumber
Ini karena kunci khusus seperti
<Esc>
tidak diterjemahkan dalamnormal
perintah, dan diperlakukan seperti Anda menekan <Esc>. Untuk memperbaiki ini, Anda dapat menggunakanexec
perintah. Seperti itu:Perhatikan bahwa Anda harus meletakkan garis miring terbalik sebelum tanda kutip dan
<Esc>
, dan menggunakan tanda kutip tunggal sebagai ganti tanda kutip ganda tidak akan berfungsi.sumber
"\<C-{insert key}>"
Mode baris perintah berbeda; Anda tidak dapat menggunakan perintah pengeditan (mode normal) yang sama di sana. Anda dapat menemukan daftar perintah di
:help c_CTRL-V
.Sekarang, ada jendela baris perintah (
:help command-line-window
), yang dapat dimasukkan melaluiq:
dari mode normal dan<C-F>
dari baris perintah. Dalam bahwa jendela, Anda dapat menggunakan semua perintah normal dan pemetaan, sehingga akan menjadi pilihan 1.Opsi 2 adalah pemetaan khusus untuk mode baris perintah. Seperti yang saya katakan, Anda tidak dapat menggunakan pendekatan via
:normal
et al. Kunci untuk mendefinisikannya adalah:help c_CTRL-\_e
pemetaan, yang "mengevaluasi [s] {expr} dan mengganti [s] seluruh baris perintah dengan hasilnya." Berikut adalah contoh sederhana yang hanya berfungsi dengan benar di akhir baris perintah:sumber