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.