Vim
:set ff=unix 或 :set fileformat=unix 设置shell 文件编码
:set nu # 显示行号
1.移动光标
- j:向下
- 20j: 向下移动 20 行
- k:向上
- h:向左
- l:向右
- 0:到行首
- ^:到行首第一个字符,如果前面有空格的话
- $:到行尾
- gg:快速到文件头
- G:快速到文件尾
50G:跳转到第 50 行
请不要在插入模式进行光标移动,效率很低下。
2.复制
yy:复制一行
8yy:向下复制8行
- yw:复制光标开始的一个单词
- y$:复制光标到行尾
- yfA:复制光标到第一个大写A中间的内容
- y2fA:复制光标到第二个大写A中间的内容
3.剪切
- x:向后剪切一个一个字符,如果是在行尾,则为向前剪切
- 4x:剪切4个
- xp:非行尾交换两个字符,如从bs变成sb
4.删除
- dd:删除一行
100dd:删除100行
- dw:删除一个单词
- df":删除到出现的第一个双引号
- d^:删除至行首
删除的内容会放到剪贴板,按p即可粘贴到其他地方。
5.粘贴
- p:粘贴复制或剪切的内容
- 5p:将复制或剪切的内容粘贴5次
6.替换和撤销
- r+<待替换字母>:将游标所在字母替换为指定字母
- R:连续替换,直到按下Esc
- cc:替换整行,即删除游标所在行,并进入插入模式
- cw:替换一个单词,即删除一个单词,并进入插入模式
- u{n}:撤销一次或n次操作
- U(大写):撤销当前行的所有修改
- Ctrl+r:redo,即撤销undo的操作
7.退出编辑器
- wq:保存当前文件并退出
- wqa:保存所有文件并退出
- q!: 不保存,强制退出
- qa!: 有多个文件被打开,同时退出
以下命令请在命令模式下执行
在普通模式下,输入:即可进入。
调整文本
- %s/$/sth/ :在行尾追加sth
- %s/^M//g :替换掉dos换行符,^M使用ctrl+v + Enter即可输入
- :g/^\s$/d* :删除空行以及只有空格的行
- %s/#.*//g :删除#之后的字符
没错,这里使用的是正则。
- ce:使本行文本内容居中
- ri:使本行文本内容靠右
- le:使本行文本内容靠左
查找字符串
在普通模式下,按下/直接进入查找,输入相应的字符串按确定即可
- n:查找下一个匹配
- N:查找上一个匹配
- 2n:查找下面第二个匹配
ps -ef | grep svn
查找指定进程 ps -aux | grep apache
与 grep 联用查找某进程 kill -9 $(ps -ef | grep pro1)
先使用 ps 查找进程 pro1,然后用 kill 杀掉 which ls
查看 ls 命令是否存在echo $PATH
;或使用 env
查看所有环境变量及对应值 whereis locate
查找 locate 程序相关文件 whereis -s locate
查找 locate 的源码文件whereis -m locate
查找 lcoate 的帮助文件 locate pwd
查找和 pwd 相关的所有文件(文件名中包含 pwd)locate /etc/sh
搜索 etc 目录下所有以 sh 开头的文件 chmod a+x t.log
增加文件 t.log 所有用户可执行权限chown -c mail:mail log2012.log
改变拥有者和群组 并显示改变信息df -l
显示磁盘使用情况du -ah scf/
以易读方式显示文件夹内所有文件大小ln -sv source.log link.log
给文件创建软链接,并显示操作信息ln -v source.log link1.log
给文件创建硬链接,并显示操作信息