vi的用户偏好设置
- 可找到vi的配置文件在配置文件中修改(ubuntu在/etc/vim/vimrc)也可以直接在vi命令模式中直接修改
- viset number 每行左边显示行号
- set tabstop=4 制表符位置为4格对齐
- :set 检查当前偏好设置
vi的两种工作状态
- 命令模式 <---> 文本模式
- 命令模式按i,a等进入文本状态
- 文本状态按' ' : '' 进入命令状态
命令状态常用命令
- i --insert,在当前字符之前插入
- a --append,在当前字符之后插入
- 单字符移动 k j h l 上下左右 光标移动
- 5h 6j 23k 表示先那个方向移动几行/列
- Ctrl+b Ctrl+f 表示向后向前翻页
- ^ $ 将光标快速移动到行首或者行尾
- w b 5w 6b 向右/左移动几个单词
- :n 将光标移动到指定行
:1 将光标定位到文件第一行
:$ 将光标定位到文件末尾 (.)圆点代表当前行- % 将光标移动到配对的下一个括号上
vi常用编辑命令
- vi常用编辑命令删除当前字符 -x
- 删除当前行 -dd
删除n行 -ndd- 替换光标字符 -r
-ra -rarbrc 分别表示替换一个字符为a 连续替换三个字符为abc- 取消上次编辑操作 -u
- 重复上次编辑操作 -.
- 存盘退出 -ZZ -:wq
- 存盘不退出 -:w
- 不存盘退出 -:q!
- 读入文件xyz.c插入到当前行之下 -:r xyz.c
- vi常用编辑命令写文件,把第50行至文件尾的内容写到文件file1中 -:50,$w fille1 -:50,$w! file1强制覆盖
- 删除,并拷贝到剪贴板
-:10,50d 删除第10-50行
-:1,.d 删除文件首至当前行的部分
-:.,$d 删除当前行到文件尾- 不删除,拷贝到剪贴板
-:10,50y yank- 粘贴剪贴板信息 -p
- 块操作
-:5,10co56 复制第5-10行到第56行之下
-:8,34m78 移动第8-34行到第78行之下- 两行合并 -J
- 刷新屏幕 Ctrl+L
- 状态显示 Ctrl+G
- 模式查找,使用正则表达式【/pattern /[0-9][0-9]*】,n向下查找,N向上查找,循环式搜索
- 替换命令 n1,n2s/abc/xyz/g [不加g表示一行只替换一次]
- 流量控制/解除 Ctrl+s/Ctrl+q
意外挂起进程解决办法:
- 在linux中可以使用Ctrl+z将一个进程suspend
- 挂起之后可通过jobs查看,使用%1 / fg %1将编号为1的进程运行到前台