linux-vi/vim
vi编辑器
ubuntu预装的是vi的tiny版本,因此在ubuntu中,使用vi编辑时,方向键和backspace是乱码,在使用vi前先进行下列步骤的修改:
- 执行sudo gedit /etc/vim/vimrc.tiny
- 将set compatible 改为set nocompatible (完成这一步可以使用方向键)
- 添加set backspace =2 (等于0或1时,仅可删除刚输入字符)
简单操作
命令模式
打开文件 | vim **.c |
---|---|
删除该文件的第3行 | 3G dd |
将第一行的字符串复制到文件结尾 | 1G yy G $ p |
将第一行之后的3行复制到文件结尾 | 1G 3yy G $ p |
将光标移到第5行开始,并将光标后的4个字符删除 | 5G 4x |
删除第3行之后的2行 | 3G 2dd |
查找全文中的第一个“printf” | 1G /printf 或 G $ ?printf |
撤销最近一次的操作 | :u |
将第1行到第5行右移 | 1,5 >> |
显示程序中包含printf的行 | :/g/printf/p |
将程序中多有的字符串for修改为io | :%s/for/io/g |
在每一行的开头添加两个空格 | :%s/^/ / |
将带有printf的行中的“%”符号替换成“$” | :g/printf/s/%/$/g |
将文中所有的单词prepostX用PrepostX代替 | :%s/<prepostX>/PrepostX/g |
第60行到第65行之间的所有的数字删除 | :60,65 %/[0-9]//g |
第80行到90之间搜索以小写字母开始的行,找到后删除该行 | :80,90 g/[1]/d |
文本末尾插入当前日期 | :r !date |
数据恢复 | 终端运行: vim –r agc.c |
:set shiftwidth=4设置缩进空格数为4
:set labtab=4 设置制表符宽度为4
将**.c分割成两个水平窗口 | :split |
---|---|
分割成两个垂直窗口 | :vsplit |
关闭多窗 | :close |
:ctrl+w+j/k,通过j/k可以上下切换,或者:ctrl+w加上下左右键,还可以通过快速双击ctrl+w依次切换窗口
保存**.c | :w 或 :wq! 或 :q! |
---|---|
将**.c另存为test.c | :w test.c |
两个文件**.c和test.c进行比较 | vimdiff **.c test.c |
个性化配置
vim ~/.vimrc
添加以下内容
set shiftwidth=4
set noshowmode
set number
set noignorecase
set showmatch
说明:
"关闭vim一致性原则
set nocompatible
"显示行号
set number
"设置在编辑过程中右下角显示光标的行列信息
set ruler
"在状态栏显示正在输入的命令
set showcmd
"设置历史记录条数
set history=1000
"设置取消备份 禁止临时文件的生成
set nobackup
set noswapfile
"设置匹配模式
set showmatch
"设置C/C++方式自动对齐
set autoindent
set cindent
"开启语法高亮功能
syntax enable
syntax on
"指定配色方案为256色
set t_Co=256
"设置搜索时忽略大小写
set ignorecase
"配置backspace的工作方式
set backspace=indent,eol,start
"设置在vim中可以使用鼠标
set mouse=a
"设置tab宽度
set tabstop=4
"设置自动对齐空格数
set shiftwidth=4
"设置退格键时可以删除4个空格
set smarttab
set softtabstop=4
"将tab键自动转换为空格
set expandtab
"设置编码方式
set encoding=utf-8
"自动判断编码时 依次尝试以下编码
set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1
"检测文件类型
filetype on
"针对不同的文件采取不同的缩进方式
filetype indent on
"允许插件
filetype plugin on
"启动智能补全
filetype plugin indent on
a-z ↩︎