[26/3/12]vim编辑器入门
参考资料:《鸟哥的 Linux 私房菜 基础篇》第 9 章
为什么学习 vim
首先,在任意的 Linux 环境下都会配备有 vi 编辑器。
而 vim 则是 vi 编辑器的进阶版。
然后,很多程序都会调用 vim 的接口,所以说不得不了解学习这个 vim。
三种模式
- 一般命令模式:这个模式下就是不能打字!但是可以复制粘贴之类的。
- 编辑模式:这个模式下才可以打字!
- 命令行模式:不对文本进行操作的模式。
一般命令模式
需要记住以下几个快捷键即可:
u:Undo,也就是撤销,就是 win 下的 ^Z ;dd:剪切所在的这一行yy:复制所在的这一行p:Paste,粘贴/:搜索,比如想要搜索 OpenCV,就输入/OpenCV然后可以按n来向下找搜索结果(其实是启动了命令模式)::启动命令模式
编辑模式
[ESC]:退出
命令模式
[ESC]:退出命令模式回到一般模式:w:write,写入文件:q:quit,退出:q!:不保存修改,强制退出(!表示强制):wq:保存并退出,最常用:set nu:显示行号:set nonu:不显示行号G:移动到尾行nG:移动到第 n 行(n 是数字)- 数字的含义就是重复多次操作,比如说
5yy表示连续复制 5 行内容
多行操作
v:多行的字符选择V:多行的行选择^v:矩形方式的多行选择y:多行内容的复制d:多行内容的剪切p:粘贴
多文件操作
主要是为了跨文件的内容复制粘贴。
vim [filename 1] [filename 2] ...:同时打开多个文件:n:下一个文件:N:上一个文件:files:列出打开的所有文件
多窗口
跨系统兼容
换行符的问题
由于 win 和 Linux 的换行符定义不相同,所以文本文件保存之后,跨系统传输之后执行的时候会出问题,这个时候可以通过一个工具来将文件内容做一个转换,转换完成之后就可以正常执行了。
dos2unix [-kn] file [newfile]unix2dos [-kn] file [newfile]
编码格式的问题
可以手动转换编码格式:
icov --listicov -f 原本编码 -t 新编码 filename [-o newfile]
补充说明:-f 表示 from,-t 表示 to,最后的 [-o newfile] 如果写出来了,就表示原文件保留下来,生成的新文件被另外保存。