Linux Vi 文本编辑器常用命令

命令模式:移动、删除、复制。
插入模式:A/i/o/O/r/R。
最后的线条样式::q/:q!/:wq/:wq!。
光标移动:h/j/k/l/↑↓←→/^/$/Shift+G/gg/:n/Ctrl+G。
屏幕滚动:Ctrl+D/U/F/B。
编辑和删除:i/a/o/O/dd/d$/d^/x/Shift+X。
查找并替换:/String/?String/n/Shift+N。
复制并粘贴:yw/yy/p/Shift+P。
多个文件操作::viaa.txt/:spss.txt/Ctrl+W。
其他:e!/Shift+J/u/:setnu/:setnonu/~。
实用提醒:高效掌握至少2 0个常用命令。

linuxvi最后一行linuxvi最后

现在,我来解释一下你问的vi操作。

---
关于将一行复制到下一行:
实际上有一种更简单的方法可以做到这一点,但是您提到的步骤有点复杂。

假设您正在使用 vi 并且光标位于要复制的行上。

1 .先按yy。
这称为“复制当前行”。
2 . 接下来是 np(其中 n 是代表要粘贴到的行的数字)。
按 1 p 进入下一行。
这会将其粘贴到当前行之后的下一行。

“进入最后一行模式,获取行号,获取当前行号和最后一行的行号”听起来很复杂,但 yy1 p 实际上要快得多。
如果需要使用该方法,请首先执行以下操作:要显示当前行号,请使用 :$ 显示最后一行号,记下数字差异,使用 :n1 co (其中 n 是您计算的差异)将当前行延伸到末尾,然后使用 p 粘贴。
嗯……反正我一般不会用这么复杂的方法,所以很容易出错。

---
关于保存vi(导出到单独的文件):
您指出的操作是正确的。
:w 新文件名。

但是,还有一些细节。
如果新文件名后面没有路径,例如直接输入“:w test2 .txt”,vi会默认将当前正在编辑的文件保存在同一目录下,成为test2 .txt。

如果将文件保存在其他目录中(例如/home/test1 .txt),则需要如前所述写入完整路径:w /home/test1 .txt。
如果该目录不存在,vi会报错。
因此,你可能需要使用命令:mkdir /home/test1 (虽然你可能无法在vi中直接使用mkdir,但必须使用shell模式:sh mkdir...或者先退出vi才能使用外部命令)。

您提到的步骤完全没问题。
打开 vi: w /home/test1 .txt 并按 Enter。
文件将被保存。

---
如何直接跳转到文件的最后一行:
这很简单,只需按 Shift+g 即可。
你所说的
:$也是正确的。
换句话说,输入“:5 $”。
这里,5 代表第五行,$ 代表最后一行。
所以 :$ 只是跳到最后。
0 是第一行,1 也是第一行。

gg 跳转到第一行,Shift+g 跳转到最后一行。
这两个是最常用的,所以请记住它们。

---
你明白吗?如果您还有其他疑问,例如如何在 vi 中删除行或如何查找和替换,请随时与我们联系。