安装vim编辑工具
yum -y install vim*
一般模式:当你vim filename 编辑一个文件时, 一进入该文件就是一般模式了。在这个模式下, 你可以做的操作有: 上下移动光标, 删除某个字符, 删除某行, 复制、粘贴一行或者多行。
编辑模式:一般模式下, 是不可以修改某一个字符的, 只能到编辑模式了。从一般模式进入编辑模式, 只需你按一个键即可(i, I, a, A, o, O, r, R)。
当进入编辑模式时, 会在屏幕的最下一行出现INSERT或REPLACE的字样。从编辑模式回到一般模式只需要按一下键盘左上方的ESC键即可。
命令模式:在一般模式下,输入 ":" 或者 "/" 即可进入命令模式。在该模式下, 你可以搜索某个字符或者字符串, 也可以保存、替换、退出、显示行号等等。
1. 使用vim打开一个文本文件
> vim filename 进入一般模式
当我们在终端中使用vi filename, 就会自动打开文件并进入VI的命令模式。
这个模式下不能编写任何代码! 但是可以进行复制、粘贴、删除等操作功能。
2. 编辑模式
a:光标所在的行之后插入(追加) append
i:光标所在的字符之前插入 insert
o:新起一行插入 open
O:当前方的上一行插入
s:删除光标所在字符,然后再插入
退出输入模式: Esc键
打开显示模式的开关: :set showmode
3. 命令模式
输入":"或"/"进入命令模式
:w //对编辑后的文档进行保存
:q //退出vi编辑器
:wq //保存文档并退出编辑器
:q! //强制退出编辑器(不保存)
:w! //强制保存
:wq! //强制保存并退出
为何需要"!",可能你的文件没权限, 或者文件作出了修改
/内容 或 ?内容 //内容查找(搜索)
//n下一个 N上一个
/字符串 在文本中从上至下搜索该字符串
?字符串 在文本中从下至上搜索该字符串
特殊字符的查找, 使用 "\" 转义
/\[DEFAULT\]
:set number 或 nu //给编辑器设置行号
:set nonumber 或 nonu //取消编辑器行号
:数字 //光标定位到数字所在行
:19 //光标定位到第19行
指定范围查找:
:1,100/transport_url 从第1行到100行查找 "transport_url" 关键字
:/DEFAULT/,100/transport_url 从字符串 "DEFAULT" 所在的行到100行范围内查找 "transport_url" 关键字
:/\[DEFAULT\]/,100/transport_url 从字符串 "[DEFAULT]" 所在的行到100行范围内查找 "transport_url" 关键字
ex常用编辑命令:
d (delete) 删除行
m (move) 移动行
co (copy) 复制行
t 复制行, 和co同义
:3,18 d 删除3~18行
:11,15 m 23 把11~15行移动到23行下面。
:23,29 co 100 复制23~29行并把它们粘贴到100行下面
//内容替换cont1被替换为cont2
:s/cont1/cont2/ //光标所在行的第一个cont1被替换为cont2
:s/cont1/cont2/g //光标所在行的全部cont1被替换为cont2, 不加g则只替换每行的第一个count1
:%s/cont1/cont2/g //整个文档的全部cont1被替换为cont2, 不加g则只替换每行的第一个count1(等同于:1,$s/count1/count2/g)
:1,5s/count1/count2/g //在1-5行之间查找count1并替换为count2, 不加g则只替换每行的第一个count1
注意: vim 中可用 :s 命令来替换字符串
4. 一般模式操作
1) 光标移动操作
① 字符级
上(k) 下(j) 左(h) 右(l) 键
② 单词级
w: word下个单词的首字母
e: end下(本)个单词的尾字母
b: before上(本)个单词的首字母
③ 行级
$: 行尾
^: 行首(行首的的非空白字符)
0: 行首(数字0键,当前行的第一个位置)
k: 向上移动1行
2k:向上移动2行
fx: 移动到指定的字符上(x)
Fx: 向前移动到指定的字符上(x)
④ 段落级(给翻屏)
{: 上(本)个段落的首部
}: 下(本)个段落的尾部
⑤ 屏幕级(不翻屏)
H: 屏幕可见区域的首部
L: 屏幕可见区域的尾部
⑥ 文档级
G: 文档尾行
1G: 文档首行(gg)
nG: 文档第n行
2) 内容删除操作
dd: 删除光标当前行
n+dd: 从光标所在行向后删除n行内容(包括光标所在行)
x : 删除光标所在的单个字符(小写向后删除) X(大写的向向前删除)
cw: 从光标所在位置删除至单词结尾, 并进入"编辑"模式
J 删除换行符(两行合并一行)
3) 内容复制操作
yy: 复制光标当前行
n+yy: 从光标所在行向后复制n行内容(包括光标所在行)
p: 对复制(删除)的内容进行"粘贴"
4) 快捷操作
u: undo撤销(undo单词的意思是撤销) Ctrl + r (组合键): 反撤销
J: 连接上下两行
.点 重复执行上次指令
r 替换单个字符
非正常关闭vim编辑器后提示错误的解决方法
使用vim, 错误出现原因一般为以下两种情况:
(1) 当你用多个程序编辑同一个文件时。
(2) 非常规退出时。
会提示以下信息:
Swap file ".old.txt.swp"already exists!
[O]penRead-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort:
(1)(2)为官方给出的解决方法:
(1) 为了避免同一个文件产生两个不同的版本, 还是建议选择"(Q)uit"或者继续谨慎修改选择"(E)dit anyway"。
(2) 也可以选择"(R)ecover"或"vim -r filename"恢复到未修改之前, 然后再把swp文件删除(这个时候要确保你的swp文件没有用处了)。
最下面选项的意思:
O: 只读, 不能改
E: 可以改, 从前的修改都丢失
R: 恢复(从前的修改)
D: 删去(删去.swp文件, 文件恢复到未修改前)
Q: 退出
A: 放弃
具体解决方案:
(1) 不想保留原先修改的内容直接选D就可以。
(2) 想保留原先修改的内容选R把修改的内容复制出来保存, 再退出文件删除awp文件。(awp文件默认为隐藏文件, 用ls -a命令查看, 用rm命令删除。)
linux 上文件用vim 编辑保存后, 自动生成了一个文件(文件名加了个 "~"号)怎么去除掉?
vim的文件旧版本备份功能, 但凡你重新编辑一个已经存在的文件时, 在你保存的时候会将老版本加一个~另存为一个备份文件, 当然如果这个备份文件已经存在就会覆盖原来的.
想要取消这个功能, 用:set nobackup 命令就可以。
~/.vimrc中添加:
set nobackup
set nowritebackup
set noswapfile ! (additionally disable swap files)