Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vim:跳转到文件的最后一个非空白字符_Vim_Vim Plugin - Fatal编程技术网

Vim:跳转到文件的最后一个非空白字符

Vim:跳转到文件的最后一个非空白字符,vim,vim-plugin,Vim,Vim Plugin,我有一个ora文件,它有200000行长,但最后60000行都是空白的回车/空格 我知道G跳转到文件的末尾,但我配置vim跳转到最后一行或最后一个非空白和非回车的字符?G?\SEnter 转到文档末尾,向后搜索,查找非空白,转到。如果你需要一个映射 nnoremap <Leader>G G?\S<CR>:noh<CR> nnoremap G?\S:noh 编辑:如果最后一行不是空的,这将不起作用。如果最后一个字符不为空,则可以进行以下修改: nnorema

我有一个ora文件,它有200000行长,但最后60000行都是空白的回车/空格

我知道G跳转到文件的末尾,但我配置vim跳转到最后一行或最后一个非空白和非回车的字符?

G?\SEnter

转到文档末尾,向后搜索,查找非空白,转到。如果你需要一个映射

nnoremap <Leader>G G?\S<CR>:noh<CR>
nnoremap G?\S:noh
编辑:如果最后一行不是空的,这将不起作用。如果最后一个字符不为空,则可以进行以下修改:

nnoremap <Leader>G G$?\S<CR>:noh<CR>
nnoremap G$?\S:noh
要解决这个问题,它变得有点复杂。我们将转到文件的最后一个字符,并测试它是否为空白。如果不是空白,我们就完了;但如果是,我们可以使用前面的解决方案。(这也避免了我们把事情搞砸的情况,因此对您的工作的干扰最小。)

函数!LastChar()
让oldsearch=@/
设oldhls=&hls
设oldz=@z
标准G$“zyl
如果匹配(@z,“\S”)
exe“norm?\\S\”
恩迪夫
让@/=oldsearch
let&hls=oldhls
让@z=oldz
端功能
nnoremap G:调用LastChar()
(count)g
将转到当前行下方行的最后一个非空字符
count
行。因此,一种愚蠢的方法是:

999999999g_
作为映射:

nnoremap <leader>g_ 999999999g_
nnoremap g_9999999g_

如果最后一行不是空的,但它的末尾有空格的话,考虑一个有3行代码的文件:<代码> AAA,<代码> BBB,<代码> CCC < /Cord>。在它的末尾有尾随空格。你想移动到最后一个<代码> C >代码>,但是它不起作用。最初,光标在第一个代码> A<代码>。我按<代码>>G
,光标移动到第一个
c
。我键入
?\S
,然后按Enter键,光标移动到最后一个
b
。这种行为是正常的。我所说的是,如果有一个能同时适用于两种情况的单一解决方案,那就太好了。也就是说,对于原始帖子中描述的情况和我描述的情况编辑:哦,我在你的最后一条评论中看到了编辑:啊,好吧,我终于明白你的意思了。对不起,太厚了:P不幸的是,如果最后一个字符是空格,我想不出什么简单的方法。在这种情况下,我们可以使用
Gg
nnoremap <leader>g_ 999999999g_