我有一个200,000行的ora文件,但最后60,000行都是空白的回车符/空格。我知道G跳到文件的末尾,但是我配置vim跳到最后一行或非空格和非回车的字符吗?
1cosmwyk1#
G?\S输入转到文档末尾,向后搜索,找到非空格,继续。如果你需要一张Map,
nnoremap <Leader>G G?\S<CR>:noh<CR>
EDIT:如果最后一行不是空白,则此操作将不起作用。如果最后一个 * 字符 * 不为空,则可以进行以下修改:
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>
xt0899hw2#
(count)g_将转到当前行下面count行的最后一个非空白字符。所以你可以用一个愚蠢的方法来做:
(count)g_
count
999999999g_
作为Map:
nnoremap <leader>g_ 999999999g_
m1m5dgzv3#
我用nnoremap G G{}它跳到最后一段之后的行。
3条答案
按热度按时间1cosmwyk1#
G?\S输入
转到文档末尾,向后搜索,找到非空格,继续。如果你需要一张Map,
EDIT:如果最后一行不是空白,则此操作将不起作用。如果最后一个 * 字符 * 不为空,则可以进行以下修改:
为了解决这个问题,它变得有点复杂。我们将转到文件的最后一个字符,并测试它是否是空格。如果不是空格,我们就完成了;但如果是,我们可以使用之前的解决方案。(这也保存了我们搞砸的事情的状态,所以它对你的工作的干扰最小。
xt0899hw2#
(count)g_
将转到当前行下面count
行的最后一个非空白字符。所以你可以用一个愚蠢的方法来做:作为Map:
m1m5dgzv3#
我用
nnoremap G G{}
它跳到最后一段之后的行。