当我想在Vim中把光标移到文件的末尾(即最后一行的末尾)时,我必须键入6个按键:

<ESC>G$a -在我的键盘布局上转换为ESC + Shiftg + Shift4 + a。

我怎样才能更有效地做到这一点呢?

由于我经常在许多不同的机器上工作,我不能总是更改.vimrc,所以我在不编辑或创建该文件的情况下寻找答案。


您可以将它映射到.vimrc中的一个键,例如F3

inoremap <F3> <Esc>GA

在做a之前不需要显式地走到行尾,使用a; 在行[count]次的末尾追加文本

< ESC GA


首先,没有必要退货。G美元就行了。在普通模式命令的长度中计算<Esc>和a会误导你。

但是,如果您愿意,可以使用Ctrl + End。


转到文件最后一行的最好方法是使用g。这将把光标移到文件的最后一行。

转到该行最后一列的最佳方法是使用$。这将把光标移动到当前行的最后一列。

通过G$你就得到了文件的末尾和最后一行。

如果你想在文件末尾进入插入模式,你只需要做GA。通过这样做,您可以转到文件的最后一行,并通过向最后一列追加内容进入插入模式。:)


按Esc键,然后按:Shift + G


这样比较快。就用这个

:$

我以为问题是“移动光标到文件的结束在vim”?

文件结束:Esc + G 文件开头Esc + g(如果已经在命令区,则按gg)


如果您计划写下一行,ESCGo将执行回车,并将您置于插入模式下一行(在文件的末尾),从而节省几次按键。


Ctrl + Home =跳转到文件的开始 Ctrl + End =跳转到文件末尾


我一直在寻找一种方法,将光标移动到一行的末尾,然后在mac终端上编辑,这是它如何为我工作的。退出编辑模式,输入g_(即“g”,下划线,前面没有冒号),然后简单地按下“a”键,这样你就可以向脚本“添加”代码了


另一个选择:

:call cursor('.',strwidth(getline('.')))

如果你在写一个函数,这可能会很有用。 另一种情况是当我需要打开一个特定的模板并跳转到第一行的末尾时,我可以这样做:

vi +"call cursor('.',strwidth(getline(1)))"  notetaking_template.txt

以上也可以做到

vi +"execute ':normal! $'" notetaking_template.txt

参见:

获取当前行的长度


转到Top - Double g

到底部- Shift + g


如果你想在文件类型的末尾粘贴一些剪贴板内容:

:$ put +

$ ............ last line
put .......... paste 
+ ............ clipboard

尝试SHIFT + G,你会在页面的末尾,但你还不能编辑。通过G + G到达顶部


转到最后一行并保留您所在的列: Shift + g 移动到行尾:Shift + $

我们可以使用Shift + g + $组合这些移动

记住,g + g将返回到文件的开头。


你所要做的就是按ESC,然后SHIFT G,光标将移动到文件的末尾。