vim
vi有三种模式:
(1)一般模式:进入vi的默认模式,能够进行复制、黏贴、删除等操作;
(2)编辑模式:从一般模式按下‘i’即可进入;
(3)命令行模式:从一般模式按下“:”、'?'、'/'即可进入;
注意:如果安装了vim后,输入vi后也是使用vim编辑器,我们输入alias后看到“alias vi='vim'”;
一般模式下常用操作命令:
Home:光标移到当前行的最左端
End:光标移到当前行的最右端
gg:光标移到全文第一行
G:光标移到全文最后一行
nG:移到第n行
/word:向下查找关键字word,n表示继续向下查找
?word:向上查找关键字word,n表示继续向上查找
:n,m/old/new/g:从第n行到第m行,将old替换为new
:n,$s/old/new/g:从第n行到最后一行,将old替换为new
u:撤销,类似windwos中的CTRL+z
x:向后删除一个字符
X:向前删除
D:删除光标位置到本行结尾
D0:删除光标位置到本行开头
de:删除光标处后面一个单词
db:删除光标处前面一个单词
dd:删除光标所在的行
yy:复制光标所在的行
p:粘贴到光标所在行的下一行
ctrl+r:重复前一个操作
移动
0:数字0,移动到光标所在行首
$:移动到光标所在行尾
插入
i 从光标处插入,不会覆盖后面的内容
a 从光标位置下一个字符处插入
A 从光标所在行的行尾处插入
o 从光标所在行的下一行插入新的一行
O 从光标所在行的上一行插入新的一行
r 替换光标处的字符
R 替换光标处 的字符,并保持,会覆盖后面的内容
删除
x 向后删除一个字符,类似【delete】
X 向前删除一个字符,类似【backspace】
dd 删除光标所在行
ndd:n为数字,从光标位置开始,向下删除n行
复制粘贴
yy 复制光标所在的那一行
nyy n为数字,从光标位置开始,向下复制n行
p 粘贴到光标位置的下一行
P 粘贴到光标位置的上一行
搜索检查
:a、bs/word1/word2/g a、b为行数,表示在a行到b行之间搜索word1,并替换为word2
:1、$s/word1/word2/g 从第一行到最后一行,查找word1并替换为word2
:1、$s/word1/word2/gc 从第一行到最后一行,查找word1并替换为word2,替换时会出现提示,给用户确认是否替换
n:重复前一个搜索的动作,向下搜索
N:向上搜索
保存
:wq 保存退出
:e! 将文件还原到未编辑状态
ZZ 保存退出
q! 强制退出不保存
:w 另存为
:r 编辑数据中,读入令一个文件的数据,并显示到当前光标位置的行的后面
:a、b w 将a行到b行之间的内容另存为
在编辑文件时,/tmp/.passwd.swp会生成缓存文件。
u : 复原撤销上一个操作
ctrl+r : 重复上一个操作
. : 重复上一个操作
:set nu 显示行号
:set nonu取消显示
全局显示行号:直接修改/etc/vimrc 写入 set nu并保存退出即可
当前用户显示:修改当前用户的vimrc文件添加set nu即可
将另一个文件内容填充到当前文件中
:r /path/to/somefile
在vim编辑过程中,可以执行命令
:! COMMAND
语法高亮开启/关闭
:syntax on/off
查找到的文本高亮显示
:set hlsearch
:set nosearch
总结:
gconf-editor # 配置编辑器
/etc/vimrc # 配置文件路径
vim +24 file # 打开文件定位到指定行
vim file1 file2 # 打开多个文件
vim -O2 file1 file2 # 垂直分屏
vim -on file1 file2 # 水平分屏
sp filename # 上下分割打开新文件
vsp filename # 左右分割打开新文件
Ctrl+W [操作] # 多个文件间操作 大写W # 操作: 关闭当前窗口c 屏幕高度一样= 增加高度+ 移动光标所在屏 右l 左h 上k 下j 中h 下一个w
:n # 编辑下一个文件
:2n # 编辑下二个文件
:N # 编辑前一个文件
:rew # 回到首文件
:set nu # 打开行号
:set nonu # 取消行号
200G # 跳转到200
:nohl # 取消高亮
:set autoindent # 设置自动缩进
:set ff # 查看文本格式
:set binary # 改为unix格式
ctrl+ U # 向前翻页
ctrl+ D # 向后翻页
%s/字符1/字符2/g # 全部替换
X # 文档加密
增
i 从光标处插入,不会覆盖后面的内容
a 从光标位置下一个字符处插入
A 从光标所在行的行尾处插入
o 从光标所在行的下一行插入新的一行
O 从光标所在行的上一行插入新的一行
r 替换光标处的字符
R 替换光标处 的字符,并保持,会覆盖后面的内容
删
x 向后删除一个字符,类似【delete】
X 向前删除一个字符,类似【backspace】
dd 删除光标所在行
ndd:n为数字,从光标位置开始,向下删除n行
复制粘贴
yy 复制光标所在的那一行
nyy n为数字,从光标位置开始,向下复制n行
p 粘贴到光标位置的下一行
P 粘贴到光标位置的上一行
查
:a、bs/word1/word2/g
a、b为行数,表示在a行到b行之间搜索word1,并替换为word2
:1、$s/word1/word2/g
从第一行到最后一行,查找word1并替换为word2
:1、$s/word1/word2/gc
从第一行到最后一行,查找word1并替换为word2,替换时会出现提示,给用户确认是否替换
保存
:wq 保存退出
:e! 将文件还原到未编辑状态
ZZ 保存退出
q! 强制退出不保存
:w 另存为
:r 编辑数据中,读入令一个文件的数据,并显示到当前光标位置的行的后面
:a、b w 将a行到b行之间的内容另存为