在 Vim 中,有没有办法将光标移动到一行中非空白字符的开头?例如,如何将光标移动到下面第二行中的“S”?
第一行 第二行
如果重要的话,我主要使用 MacVim,但我也希望能够从控制台执行此操作。
谢谢!
slh*_*hck 67
如果我理解正确 - 来自:h ^
:
^ To the first non-blank character of the line.
|exclusive| motion.
Run Code Online (Sandbox Code Playgroud)
(相比之下0
,无论是否有空格,都可以让您从头开始)
小智 66
而不是按的^
可以按_
(下划线),跳转到第一个非空格字符在同一行上的光标在。
+
并-
跳转到下一行/上一行的第一个非空白字符。
(这些命令仅在正常模式下有效,在插入模式下无效。)
小智 6
下面是来自 .vimrc 的一个片段
^[[1~
是通过按下ctrl+v
和创建的Home
"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
Run Code Online (Sandbox Code Playgroud)