Pergi ke karakter non-spasi terakhir dari baris sebelumnya / berikutnya?


10

Aku seperti -dan <C-M>kunci yang normal-mode untuk pergi ke karakter non-spasi pertama dari / baris berikutnya sebelumnya.

Apakah ada kunci yang sesuai untuk pergi ke karakter non-spasi terakhir pada baris sebelumnya / berikutnya?

Jawaban:


13

g_memindahkan kursor ke karakter non-kosong terakhir dari baris saat ini . Dari Vim's :help g_:

g_          To the last non-blank character of the line and
            [count - 1] lines downward |inclusive|. {not in Vi}

Sayangnya, saya pikir satu-satunya pilihan Anda harus pindah ke karakter non-kosong dari baris sebelumnya / berikutnya adalah kg_atau jg_masing-masing atau menggunakan hitungan untuk bergerak ke bawah.

Namun, mudah untuk memetakannya ke sesuatu yang lebih mudah:

nnoremap <F3> kg_
nnoremap <F4> jg_

1
Perhatikan juga bahwa 2g_ini juga akan berfungsi jika Anda ingin pergi ke karakter bukan spasi putih terakhir pada baris berikutnya. Namun, ini tidak dapat digunakan untuk baris sebelumnya. Keuntungannya 2g_adalah bahwa hal itu dapat diulangi dengan.
EvergreenTree

1
Gerakan (seperti g_) tidak dapat diulang dengan .. Secara umum, hanya hal-hal yang mengubah keadaan buffer yang bisa diulang.
tommcdo

Padahal, ketika dikombinasikan dengan operator, pengulangan bekerja. Mungkin itulah yang Anda maksud
tommcdo

Ah, saya tidak menyadari gerakan tidak dapat diulang. Saya harus melihat dokumen sebelum saya mengatakan sesuatu.
EvergreenTree

0

Jika yang Anda maksud adalah karakter non-spasi putih dari baris sebelumnya / berikutnya (dengan menjadi vertikal), maka coba:

map <C-k> :call search('\%' . virtcol('.') . 'v\S', 'bW')<CR>
map <C-j> :call search('\%' . virtcol('.') . 'v\S', 'wW')<CR>
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.