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?

ivan
sumber

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_
akshay
sumber
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>
kenorb
sumber