linux下文本编辑器vim的使用方法(复制、粘贴、替换、行号、撤销、多文件操作)
脚本之家
文本文件的编辑命令:vim
1、vim的三种状态模式
1)命令模式(默认)
备注:命令模式下输入“:q!”可以退出vim。
2)可编辑模式(通过命令模式下输入小写“i”进入可编辑模式;按Esc退出至命令模式)
备注:小写i,在当前光标处插入;小写a,在当前光标后插入。
3)末行模式(通过命令模式下进入,按Esc退出至命令模式)
作用:在文件的最后一行执行非文本编辑命令,保存、打开文件,写文件名等。
例如“:w”的作用是,填写文件名;
例如“:wq”的作用是,填写文件后保存并退出;
例如“/”,从上往下查找;
例如“?”,从下往上查找;
2、vim的基本操作
1)打开文件
vim 文件名即可打开并进入命令模式。
2)编辑文件
命令模式下,输入小写i即可进入编辑模式;
3)保存文件并退出
编辑完成后,按Esc返回命令模式,输入“:w”(没有文件名的话添加文件名);
再输入:q即可退出。
3、vim的编辑操作(在命令模式下)
1)复制操作
小写“yy”复制单行;
“2yy”复制光标处2行;
……
“nyy”复制光标出n行。
2)粘贴操作
小写“p”粘贴到当前光标的下一行;
大写“P”粘贴到当前光标的下一行;
3)删除操作
“dd”删除当前行
“2dd”删除光标处当前两行;
……
4)增行操作open
小写“o”,在当前光标处的下一行插入空行;
大写“o”,在当前光标处的上一行插入空行;
4、vim的查找替换操作(在末行模式下)
1)查找操作
作用:查找包含关键字的行;
在命令模式下输入“/查找对象”,即可从上往下查找,按n查找(next);
在命令模式下输入“?查找对象”,即可从上往下查找,按n查找(next);
2)替换操作
行替换
:s/被替换对象/新对象/gc,提示后按y即完成替换。
全文替换
:%s/被替换对象/新对象/gc,分别按行提示后按y即完成替换。
输入:wq(保存并退出)。
5、vim的高级操作1)行号的设置
在末行模式下输入“:set nu”即可显示文件的行号;
在末行模式下输入“:set nonu”即可关闭显示文件的行号;
vi ~/.vimrc
2)~/.vimrc的编辑设置
3)多文件的并发操作
该操作便于多文件相互复制粘贴等。
命令:vim 文件名1 文件名2 文件名3……
命令:“:args”在底部显示当前打开的多个文件的名字,【当前文件的名字】;
命令:“:next”切换显示下一个文档;
命令:“:prev”切换显示上一个文档;
命令:“:first”切换显示第一个文档;
命令:“:last”切换显示最后一个文档。
4)操作的撤销与恢复
备注:无论是u撤销,还是ctrl+r恢复,前提要是文件不能执行了保存。
小写u:change before(按行,分步骤以时间轴为单位撤销最近的动作)直至already at oldest change(可撤销多步);
大写U:仅撤销一步操作;
Ctrl+r:change after (按行,分步骤以时间轴为单位恢复被撤销的动作)直至already at oldest change;
Ctrl+R:恢复被撤销的,一步到底;
linux 下 vi 文本编辑如何复制一行粘贴删除一行数据
在使用vi有时会想直接复制一行数据,然后粘贴一行或者直接删除一行数据
复制一行数据的方法
把光标放到要复制的一行前面,然后按两下yy字母键
然后把光标放到要复制到的地方去,按键盘的p字母键
删除一行是把光标移动到要删除的一行上,按两下dd键
下面是相关键的说明:
x,X : 在一行中,x为向后删除一个字符(相当于del键),X为向前删除一个字符(相当于backspace键)。
dd : 删除光标所在的那一整行。
ndd : n 为数字。从光标开始,删除向下n列。
yy : 复制光标所在的那一行。
nyy : n为数字。复制光标所在的向下n行。
p,P : p 为将已复制的数据粘贴到光标的下一行,P则为贴在光标的上一行。
u : 复原前一个操作
CTRL + r : 重做上一个操作。
小数点'.': 重复前一个动作。
vim常用命令(删除、复制、粘贴、撤销、查找、插入、光标移动、选择、保存、退出)
vim基本操作:
选择文本
v 从光标当前位置开始,光标所经过的地方会被选中,再按一下v结束。
V 从光标当前行开始,光标经过的行都会被选中,再按一下V结束。
ctrl+v 从光标当前位置开始,选中光标起点和终点所构成的矩形区域,再按一下Ctrl + v结束。
ggVG 选中全部的文本,其中gg为跳到行首,V为选中整行,G为末尾
删除,复制,粘贴,撤销
d 删除 dd 删除整行 ndd 删除n行
x 删除一个字符
u 撤销上一次操作
ctrl+R 反撤销(撤销撤销操作)
y复制 (复制到寄存器)
p粘贴 (默认从寄存器取出)
常用 先是ESC
i 光标前插入文本
a 光标后插入文本
o 在下面另起一行,并使当前模式转为Insert模式
O(大写O) 将在当前行的上面另起一行
:q 退出
:q! 强制退出
:wq 保存并退出
ZZ 保存并退出
/ 简单搜索 /pp 在文件中搜索pp
移动命令
$ 将光标移动到行尾 2$ 移动到下一行的行尾 n$ 移动到下n行的行尾
^ 将光标移动到当前行第一个非空白字符上
0(数字0) 将光标移动到当前行的第一个字符上
G 将光标移动到最后一行。 33G 将光标移动到33行
gg 跳到第一行
Vim 全选复制粘贴 撤销 回退 操作
全部删除:按esc键后,先按gg(到达顶部),然后dG
全部复制:按esc键后,先按gg,然后ggyG
全选高亮显示:按esc键后,先按gg,然后ggvG或者ggVG
单行复制:按esc键后, 然后yy
单行删除:按esc键后, 然后dd
粘贴:按esc键后, 然后p
复制到粘贴板: 全选高亮显示之后,ctrl+shift+c,
vim只能粘贴50行的问题:
在当前用户主目录编辑~/.vimrc(如果不存在,新建这个文件),添加一行
:set viminfo='1000,<500
至于为什么要输入输入’1000,这个其实不重要,最主要的是输入<500,它是设置寄存器保存的行数的。即最大值为 500
在vim中按u可以撤销一次操作
u 撤销上一步的操作
Ctrl+r 恢复上一步被撤销的操作
注意:
如果你输入“u”两次,你的文本恢复原样,那应该是你的Vim被配置在Vi兼容模式了。
重做
如果你撤销得太多,你可以输入CTRL-R(redo)回退前一个命令。换句话说,它撤销一个撤销。要看执行的例子,输入CTRL-R两次。字符A和它后面的空格就出现了:
young intelligent turtle
有一个特殊版本的撤销命令:“U”(行撤销)。行撤销命令撤销所有在前一个编辑行
上的操作。 输入这些命令两次取消前一个“U”:
A very intelligent turtle
xxxx 删除very
A intelligent turtle
xxxxxx 删除turtle
A intelligent
用“U”恢复行
A very intelligent turtle
用“u”撤销“U”
A intelligent
“U”命令自己改变自己,“u”命令撤销操作,CTRL-R命令重做操作。这有点乱,但不用
担心,用“u”和CTRL-R命令你可以切换到任何状态。
流行的文本编辑器通常都有前进和后退功能,可以在文件中曾经浏览过的位置之间来回移动。在 vim 中使用 Ctrl-O 执行后退,使用 Ctrl-I 执行前进。
相关帮助: :help CTRL-O :help CTRL-I :help jump-motions