Cara melompat ke awal atau akhir baris di vim + OS X
17
Di terminal saya bisa melakukan ini dengan menekan shift + home dan shift + end, tetapi sepertinya tidak berfungsi di vim. Tombol Home dan end hanya menggulir jendela terminal. Saya ingin melompat dalam mode edit.
Dalam mode perintah, Anda dapat menemukannya di Vim Cheat Sheet (0 dan $): fprintf.net/vimCheatSheet.html . Saya tidak tahu tentang mode edit.
Gnoupi
Jawaban:
13
Jawaban ini mengasumsikan Anda menggunakan vim di jendela Terminal .
Binding default untuk Home dan End sedikit berbeda dari apa yang diharapkan oleh sebuah program berdasarkan pengaturan TERM yang biasa (yaitu varian xterm). Jika Anda ingin tetap menggunakan binding standar (dan harus menggunakan varian Shifted di Terminal ), Anda dapat mencoba meletakkan sesuatu seperti ini di .vimrc:
:" map Mac OS X Terminal.app default Home and End
:map <ESC>[H <Home>
:map <ESC>[F <End>
:imap <ESC>[H <C-O><Home>
:imap <ESC>[F <C-O><End>
:cmap <ESC>[H <Home>
:cmap <ESC>[F <End>
Jika tidak, Anda dapat mencoba menyesuaikan kode yang dikirim Terminal ketika Anda menggunakan Home dan End (tidak tergeser, jika Anda mau). Pencarian mungkin akan muncul beberapa tempat yang menggambarkan bagaimana melakukannya ( ini satu ). Ide dasarnya adalah bahwa Anda ingin memiliki Terminal mengirim ESC [1 ~ bukan ESC [H untuk Rumah dan ESC [4 ~ bukannya ESC [F untuk End (atau Shift-Home / Shift-End jika Anda ingin menyimpan Rumah / Berakhir untuk mengakses scrollback). Saya akan menjelaskan proses secara lebih rinci, tetapi saya hanya punya 10,4, dan saya tahu Terminal banyak berubah dalam 10,5 dan kemudian.
Dengan iTerm dan Vim Anda dapat menggunakan panah fn + kanan dan kiri dalam mode insert untuk melompat untuk memulai atau mengakhiri garis. Dengan Terminal.app Anda menggunakan shift + panah .
OP ingin melompat dalam mode pengeditan, bukan dalam mode perintah, sehingga tombol-tombol ini hanya akan benar-benar masuk 0dan $.
slhck
1
Sebagai tambahan untuk jawaban Chris , Anda juga dapat mencapai navigasi kata (dengan Option+arrowkunci), hanya dengan menambahkan empat baris:
:map <ESC>f el
:imap <ESC>b <C-o>b
:imap <ESC>f <C-o>el
:cmap <ESC>f el
Perhatikan ohuruf kecil, sehingga tidak akan keluar dari insertmode untuk operasi. Anda juga dapat mengubah huruf besar Odalam jawaban asli untuk efek yang sama.
Kedengarannya seperti JtR menggunakan vim di dalam Terminal.app alih-alih menggunakan MacVim (yang saya akan sangat merekomendasikan, dan secara pribadi menggunakan, juga).
Matrix Mole
0
Buka Terminal -> Preferensi -> Profil -> Keyboard dan tambahkan:
Jawaban:
Jawaban ini mengasumsikan Anda menggunakan vim di jendela Terminal .
Binding default untuk Home dan End sedikit berbeda dari apa yang diharapkan oleh sebuah program berdasarkan pengaturan TERM yang biasa (yaitu varian xterm). Jika Anda ingin tetap menggunakan binding standar (dan harus menggunakan varian Shifted di Terminal ), Anda dapat mencoba meletakkan sesuatu seperti ini di
.vimrc
:Jika tidak, Anda dapat mencoba menyesuaikan kode yang dikirim Terminal ketika Anda menggunakan Home dan End (tidak tergeser, jika Anda mau). Pencarian mungkin akan muncul beberapa tempat yang menggambarkan bagaimana melakukannya ( ini satu ). Ide dasarnya adalah bahwa Anda ingin memiliki Terminal mengirim ESC [1 ~ bukan ESC [H untuk Rumah dan ESC [4 ~ bukannya ESC [F untuk End (atau Shift-Home / Shift-End jika Anda ingin menyimpan Rumah / Berakhir untuk mengakses scrollback). Saya akan menjelaskan proses secara lebih rinci, tetapi saya hanya punya 10,4, dan saya tahu Terminal banyak berubah dalam 10,5 dan kemudian.
sumber
Dengan iTerm dan Vim Anda dapat menggunakan panah fn + kanan dan kiri dalam mode insert untuk melompat untuk memulai atau mengakhiri garis. Dengan Terminal.app Anda menggunakan shift + panah .
sumber
gunakan 0 dan $ untuk pindah ke awal dan akhir baris. Referensikan situs ini: http://alvinalexander.com/linux/vi-vim-editor-end-of-line .
sumber
0
dan$
.Sebagai tambahan untuk jawaban Chris , Anda juga dapat mencapai navigasi kata (dengan
Option+arrow
kunci), hanya dengan menambahkan empat baris:Perhatikan
o
huruf kecil, sehingga tidak akan keluar dariinsert
mode untuk operasi. Anda juga dapat mengubah huruf besarO
dalam jawaban asli untuk efek yang sama.sumber
Di MacVim, Anda dapat menggunakan Command 'Left Arrow' dan Command 'Right Arrow' untuk pergi ke awal dan akhir baris saat berada dalam mode edit.
sumber
Buka Terminal -> Preferensi -> Profil -> Keyboard dan tambahkan:
Kunci: ↖ Tindakan: \ 033OH
Kunci: ↗ Tindakan: \ 033OF
sumber