天天看点

vim编辑器使用方法汇总

作者:寒笛过霜天

安装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)

继续阅读