İmleci Vim'deki bir satırdaki boşluk olmayan karakterlerin başına götür


48

Vim'de, imleci bir satırdaki boşluk olmayan karakterlerin başlangıcına getirmenin bir yolu var mı? Örneğin, imleci aşağıdaki ikinci satırdaki "S" harfine nasıl taşıyabilirim?

İlk satır
    İkinci çizgi

Önemli olursa, öncelikle MacVim kullanıyorum, ancak bunu konsoldan da yapabilmek istiyorum.

Teşekkürler!

Yanıtlar:


57

Doğru anlarsam - dan :h ^:

^ To the first non-blank character of the line.
  |exclusive| motion.

( 0boşluktan veya boşluktan bağımsız olarak sizi baştan çıkarmanın aksine )


1
+1 0comment
Roy Truelove

46

Basmak yerine , imlecin üzerinde olduğu satırdaki ilk boşluk olmayan karaktere atlamak için (alt çizgi) ^tuşuna basabilirsiniz _.

+ve -sonraki / önceki satırdaki ilk boşluk olmayan karaktere atla.

(Bu komutlar sadece komut modunda çalışır, ekleme modunda değildir.)


8

Ayrıca muhtemelen yararlıdır: + ve - imleci sırasıyla boş olmayan ilk karaktere yukarı veya aşağı hareket ettirir.


4

aşağıda bir snippet tarafından .vimrc ve
^[[1~tuşuna basarak oluşturulur.ctrl+vHome

"jump to first non-whitespace on line, jump to begining of line if already at first non-whitespace
map <Home> :call LineHome()<CR>:echo<CR>
imap <Home> <C-R>=LineHome()<CR>
map ^[[1~ :call LineHome()<CR>:echo<CR>
imap ^[[1~ <C-R>=LineHome()<CR>
function! LineHome()
  let x = col('.')
  execute "normal ^"
  if x == col('.')
    execute "normal 0"
  endif
  return ""
endfunction

Teşekkürler, aradığım şey buydu. Bu davranış günümüzde editörlerde yaygındır (Atom / VSCode / Sublime, bir kaç isim) ve buna alıştım ...
YoYoYonnY

0

Andrew Sohn'un cevabını genişleterek, eğer bu davranış için 0 kullanmak istersen, sadece şöyle sar:

function! LineHome()
  let x = col('.')
  execute "normal ^"
  if x == col('.')
    unmap 0
    execute "normal 0"
    map 0 :call LineHome()<CR>:echo<CR>
  endif
  return ""
endfunction 

-1

Ben sadece 0 anahtarını ^

~ / .Vimrc'nizi düzenleyin

set visualbell t_vb=
map 0 ^
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.