Vim:跳转到文件的最后一个非空白字符
Vim: Jump to last non-whitespace character of a file
我有一个 200,000 行长的 ora 文件,但最后 60,000 行都是空白回车 returns/whitespace。
我知道 G 跳转到文件末尾,但我确实配置 vim 跳转到非空白的最后一行或字符,并且非运输return?
G?\S输入
转到文档末尾,向后搜索,找到一个非空格,继续。如果你需要一个映射,
nnoremap <Leader>G G?\S<CR>:noh<CR>
编辑:如果最后一行不是空白,这将不起作用。如果最后一个 字符 不为空,下面的修改将起作用:
nnoremap <Leader>G G$?\S<CR>:noh<CR>
要修复 那个,它有点复杂。我们将转到文件的最后一个字符,并测试它是否为空格。如果它不是空格,我们就完成了;但如果是,我们可以使用以前的解决方案。 (这也保存了我们搞砸的事情的状态,因此它对您的工作的干扰最小。)
function! LastChar()
let oldsearch = @/
let oldhls = &hls
let oldz = @z
norm G$"zyl
if match(@z, '\S')
exe "norm ?\S\<CR>"
endif
let @/ = oldsearch
let &hls = oldhls
let @z = oldz
endfunction
nnoremap <Leader>G :call LastChar()<CR>
(count)g_
将转到当前行下方 count
行的最后一个非空白字符。所以你可以这样做的一个愚蠢的方法是:
999999999g_
作为映射:
nnoremap <leader>g_ 999999999g_
我有一个 200,000 行长的 ora 文件,但最后 60,000 行都是空白回车 returns/whitespace。
我知道 G 跳转到文件末尾,但我确实配置 vim 跳转到非空白的最后一行或字符,并且非运输return?
G?\S输入
转到文档末尾,向后搜索,找到一个非空格,继续。如果你需要一个映射,
nnoremap <Leader>G G?\S<CR>:noh<CR>
编辑:如果最后一行不是空白,这将不起作用。如果最后一个 字符 不为空,下面的修改将起作用:
nnoremap <Leader>G G$?\S<CR>:noh<CR>
要修复 那个,它有点复杂。我们将转到文件的最后一个字符,并测试它是否为空格。如果它不是空格,我们就完成了;但如果是,我们可以使用以前的解决方案。 (这也保存了我们搞砸的事情的状态,因此它对您的工作的干扰最小。)
function! LastChar()
let oldsearch = @/
let oldhls = &hls
let oldz = @z
norm G$"zyl
if match(@z, '\S')
exe "norm ?\S\<CR>"
endif
let @/ = oldsearch
let &hls = oldhls
let @z = oldz
endfunction
nnoremap <Leader>G :call LastChar()<CR>
(count)g_
将转到当前行下方 count
行的最后一个非空白字符。所以你可以这样做的一个愚蠢的方法是:
999999999g_
作为映射:
nnoremap <leader>g_ 999999999g_