vim 官网
Linux系统命令行界面下的文本编辑器有很多,比如Emacs,pico,nano,joe和vim等。
因为几乎所有Unix Like都内置了vi编辑器,又因为vim是vi的高级版本,具有字体颜色辨别语法正确性的功能,所以今天写下vim的常规使用;
vim分为三种模式,分别是一般模式、编辑模式与命令行模式;
一般模式:打开文件直接进入的就是一般模式,可使用上下左右按键来移动光标,可删除字符或整行,可复制、粘贴文件数据;
编辑模式:在一般模式下按下“i、I、 o、 O、 a、 A、 r、 R”其中任一字符可进入编辑模式,界面左下方会出现INSERT或REPLACE字样,按【ESC】键退出编辑模式。
命令行模式:在一般模式下输入“: / ?”三个中的任何一个按钮,光标会移动到最下面的一行进入命令行模式,可进行查找数据、读取、保存、替换字符、退出VIM、显示行号等操作;
如下图示:
简单范例:
vim test.txt
# 直接进入一般模式,按“i”进入编辑模式(可以编写文件),按【ESC】回到一般模式,然后输入“:wq”保存后离开vim编辑器。
一般模式常用按键说明:
【Ctrl】+【f】: 屏幕向下移动一页 =【page down】按键
【Ctrl】+【b】: 屏幕向上移动一页 =【page up】按键
数字0或【HOME】: 移动到这一行的首字符
$或【End】: 移动到这一行的尾字符
G: 移动到文件的最后一行
nG: n为数字,移动到文件的第n行
gg: 移动到文件的第一行
N: 光标向下移动n行
/word: 向下寻找名称为word的字符串
?word: 向上寻找名称为word的字符串
:n1,n2s/word1/word2/g n1和n2为数字,在n1和n2行之间寻找word1字符串,并替换为word2。
:1,$s/word1/word2/g 整个文件查找word1,并替换为word2
:1,$s/word1/word2/gc 整个文件查找word1,并替换为word2,并提示用户是否需要替换
xX x向后删除一个字符,X向前删除一个字符
dd 删除光标所在整行
ndd 删除光标所在向下n行
yy 复制光标所在的整行
nyy 复制光标所在的向下n行
pP p在光标下一行粘贴,P在光标上一行粘贴
u 复原前一个操作
【ctrl】+r 重做上一个操作
. 小数点,重复前一个操作
编辑模式常用按键说明:
i I a A o O r R 进入插入模式
命令行模式常用按键说明:
:w 将数据写入硬盘
:q 退出编辑器
:q! 强制离开编辑器
:wq 保存退出
:w【filename】 另存为
:f【filename】 读入另一个文件数据,并将内容加到光标所在行后面
:n1,n2w【filename】 将n1到n2的内容保存成filename这个文件
:!command 暂时离开命令行模式下执行command的显示结果。例:":!ls /home",可在vim编辑器中查看命令结果
:set nu 显示行号
:set nonu 取消行号
批量注释
1、Ctrl+v进入VISUAL BLOCK(可视块)模式,按 j (向下选列)或者 k (向上选列),再按Shift + i (大写 I )进入编辑模式然后输入你想要插入的字符(任意字符),再按两次Esc可实现批量插入字符
2、命令行模式下,输入 " : 首行号,尾行号 s /^/字符/g "实现批量插入字符。如 输入:2,7s/^/#/g,在2到7行首插入#
批量删除字符
1、Ctrl+v进入VISUAL BLOCK(可视块)模式,按 j (向下选取列)或者 k (向上选取列),直接(不用进入编辑模式)按 x 或者 d 就可以直接删去,再按Esc退出。
2、命令行模式下,输入 " : 首行号,尾行号 s /^字符//g "实现批量删除字符。如 输入:2,7s/^#//g,在2到7行首删除#
个人比较喜欢显示行号,所以为了永久显示行号,做了以下操作
echo "set number" >> /etc/vimrc #vim永久显示行号
语系编码转换
iconv list iconv -f 原本编码 -t 新编码 filename [-o newfile] iconv -f big5 -t utf8 vi.big5 -o vi.utf8
..........................................................美 丽 的 分 隔 符..................................................................