您的位置:首页 > 运维架构 > Linux

vim 文本编辑命令

2014-02-14 11:06 197 查看
vi编辑器的启动与退出
vi   直接进入编辑环境
:q!  强行退出vi编辑环境
文件操作
:e filename 打开filename文件。若filename为空,则重新读取当前文件
:r filename 读取filename文件内容到当前文件
:w  保存文件
:q  退出vi编辑器
:wq 保存并退出
光标移动操作
光标方向移动
h  向左移动
l  向左移动
k  向上移动
j  向下移动
翻页移动
Ctrl + F  向前翻整页
Ctrl + B  向后翻整页
Ctrl + U  向前翻半页
Ctrl + D  向后翻半页
行内快速跳转
^  快速跳转到本行的行首字符
$  快速跳转到本行的行尾字符
w   快速跳转到当前光标所在位置的后一个单词的首字母
b  快速跳转到当前光标所在位置的前一个单词的首字母
e   快速跳转到当前光标所在位置的后一个单词的尾字母
文件内行间快速跳转
:set nu   编辑器中显示行号
:set nonu 取消行号的显示
1G 跳转到文件的首行
G  跳转到文件的末尾行
:$  跳转到文件的末尾行
nG  跳转到文件中的第n行
:n  跳转到文件中的第n行
编辑操作
进入输入模式
i  在当前光标处进入插入状态
a  在当前光标后进入插入状态
A 将光标移动到当前行的行末,并进入插入状态
o 在当前行的下面插入新行,光标移动到新行的行首,进入插入状态
O 在当前行的上面插入新行,光标移动到新行的行首,进入插入状态
cw 删除当前光标到年在单词尾部的字符,并进入插入状态
c$ 删除当前光标到行尾的字符,并进入插入状态
c^ 删除当前光标之前(不包括光标上的字符)到行首的字符,并进入插入状态
输入模式的操作
删除操作
x  删除光标处的单个字符
dd 删除光标所在行
dw 删除当前字符到单词尾(包括空格)的所有字符
de 删除当前字符到单词尾(不包括单词尾部的空格)的所有字符
d$ 删除当前字符到行首的所有字符
J 删除光标所在行行尾的换行符,相当于合并当前行和下一行的内容。
:%d 清空全部文本内容
撤销操作
u  取消最近一次的操作,并恢复操作结果
U 取消对当前行进行的所有操作
Ctrl + r 对使用u命令撤销的操作进行恢复
复制操作
yy 复制当前行整行的内容到vi缓冲区
yw 复制当前光标到单词尾字符的内容到vi缓冲区
y$ 复制当前光标到行尾的内容到vi缓冲区
y^ 复制当前光标到行首的内容到vi 缓冲区
:m,ny 复制文件中第m行到第n行之间的文本
粘贴操作
p 将缓冲区中的内容粘贴到当前的位置(不覆盖文件已有的内容)
查找操作
/word 自上而下的查找操作
?word 自下而上的查找操作
继续往下搜索按/,继续往上搜索按?
:nohl 取消高亮。查找后,单词仍为高亮
替换操作(注意会匹配空格,若写为/ old/则空格会被匹配)
:s/old/new/      普通替换操作。用字符串str2替换行中首次出现的字符串str1。此时,正文中所有目标串都被加亮,输入:s,继续替换下一个目标串。
:s/old/new/g    行内全部替换操作
:m,ns/old/new/g 在m至n行区域内进行替换操作
:.,$s/str1/str2/g 用字符串str2替换正文当前行到末尾所有出现的字符串str1
:%s/old/new/g  整个文件内的替换操作
:s/old/new/c    使用替换的确认功能
编辑器的多文件操作
:args 	    显示多文件信息
:next 和 :prev  前后切换多文件
:n 和 :N 	    前后切换多文件
:first 和 :last 定位首文件和尾文件
Ctrl + ^        循环文件切换
标签使用
# ctags - R 递归生成tags
# vim *     递归打开所有文件
:set tags=~/nginx/tags 设置tags文件路径
Ctrl + ] 跳转到匹配tags。如选中一个函数,则跳转到选中函数的定义
Ctrl + o 切换到上个跳转点
Ctrl + i 切换到下个跳转点
# grep -nr “string” dir 命令行辅助搜索字符串
分屏
:split 或 :sp 水平分屏
:vertical split 或 :vsp 垂直分屏
Ctrl + w + w 屏幕之间切换
Ctrl + w + x 将当前窗口与下一个窗口对调
:e filename 当前屏打开文件

使用tab切换多个文件
:tabnew /path/to/foo.txt
按g,按t,在tab间切换

跳到第20行
:20

选择文件块
按v,然后使用方向键选择文本块

拷贝
选择文本块后,按y

剪切
选择文本块后,按x

粘帖
执行拷贝或剪切操作后,再目标位置,按p

删除
选择文本块后,按d

按行选择文本块
Shift+v
按列选择文本块
Ctrl+v

拷贝当前行
yy

往下拷贝三行
3yy

删除当前行
dd

往下删除三行
3dd

撤销 u
反撤销 Ctrl+r

清空全部文本内容
:%d

批量注释
1)Ctrl + v
2)光标上或下移选择需要注释行的开头
3)按大写I键,下方会提示 insert 模式,输入注释符号(#或//)
4)按ESC键,多行即被注释

批量删除注释
同上一、二步骤后,按d键,注释即被删除
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux vim 文本编辑