1. vim安装
在线安装(建议)
sudo apt-get install vim (ubuntu)
yum install vim (redHat/Fedora/CentOS)
2. vim使用
2.1 vim的工作模式:命令模式、编辑模式、末行模式
就是直接在vim + 文件名,进行编辑
常用命令
含义 | 命令 |
---|---|
添加批量注释 | 1. 首先把光标定位到要注释的最前面 2.ctrl+v进入视图模式,向下或者向上移动光标,移动到注释的最后一行 3.然后按大写的i(shift+i),插入注释符,注释符比如 # 等等 4.最后按 esc ,这样就选中的全部注释了 |
去掉批量注释 | 1. ctrl+v进入视图模式,选中要取消注释的区域 2. 然后按d,就会删除选中的注释符号 |
剪切文本 | 1. ctrl+v进入视图模式,选中要剪切的文本 2. 点击 y 进行复制 3. 点击 p 进行剪切 4. 点击 p 进行复制 剪切当前行光标所在的位置到行尾:d$ 剪切当前行光标所在的位置到行首:d^ 剪切三行:3dd,就是从当前行 + 下两行被剪切 剪切1-10到20行(括号里面的):(:1,10 m 20) |
删除 | 1. 删除一行 : dd 2.删除以当前行开始的n行 : ndd 3. 删除以当前字符开始的一个字符 : dw 4. 删除以当前字符开始的n个字符 : ndw 5. 删除以当前字符开始的一行字符 : d$ , D 6. 删除到下一句的开始 : d) 7. 删除到下一段的开始 : d} 8. 删除两行 : d + 回车 |
复制 | 将第9行至15行的数据,复制到16行 1. (:9,15 copy 16 或者 :9,15 co 16) 2.ctrl+v进入视图模式,选中复制的文本,点击y,将光标选择要粘贴的地方,esc退出可视模式,点击p进行复制 |
换行 | 点击 o 就可以换行(不过是编辑模式,注意一下) |
撤回操作 | 点击 u 就可以撤销到上一次的输入(这个只能在一般模式下使用) |
在每行前面加入行号 | :set su |
取消行号 | :set nonu |
开启鼠标控制 | :set mouse=a |
设置搜索高亮 | :set hls |
设置字体 | :set guifont=monaco\10 |
标记当前所在行 | :set sursorline |
在命令模式下退出并保存 | :wq |
文件未作修改退出 | :q |
强制退出,不保存 | :q! |
光标跳到指定行行首 | :行号 |
光标移动到最后一行 | G |
光标移动到首行 | gg |
字符的替换 | 1. :%s/源字符/替换字符(将每行出现的第一个源字符替换为目标字符) 2. :%s/源字符/替换后的字符/g(将全文源字符替换为目标字符)3. : 8,10s/源字符/替换后字符/g(替换第八行到第十行的字符) |
2. 2 永久设置一些行号啥的,可以对/etc/vimrc进行编辑添加(vim /etc/vimrc),成为永久,不用每次进入终端进行设置(建议:用啥添加啥,都添加进去也没问题)
"打开语法高亮
syntax on
"使用配色方案
colorscheme desert
"打开文件类型检测功能
filetype on
"不同文件类型采用不同缩进
filetype indent on
"允许使用插件
filetype plugin on
filetype plugin indent on
"关闭vi模式
set nocp
"与windows共享剪贴板
set clipboard+=unnamed
"取消VI兼容,VI键盘模式不易用
set nocompatible
"显示行号, 或set number
set nu
"历史命令保存行数
set history=100
"当文件被外部改变时自动读取
set autoread
"取消自动备份及产生swp文件
set nobackup
set nowb
set noswapfile
"允许使用鼠标点击定位
set mouse=a
"允许区域选择
set selection=exclusive
set selectmode=mouse,key
"高亮光标所在行
set cursorline
"取消光标闪烁
set novisualbell
"总是显示状态行
set laststatus=2
"状态栏显示当前执行的命令
set showcmd
"标尺功能,显示当前光标所在行列号
set ruler
"设置命令行高度为3
set cmdheight=3
"粘贴时保持格式
set paste
"高亮显示匹配的括号
set showmatch
"在搜索的时候忽略大小写
set ignorecase
"高亮被搜索的句子
set hlsearch
"在搜索时,输入的词句的逐字符高亮(类似firefox的搜索)
set incsearch
"继承前一行的缩进方式,特别适用于多行注释
set autoindent
"为C程序提供自动缩进
set smartindent
"使用C样式的缩进
set cindent
"制表符为4
set tabstop=4
"统一缩进为4
set softtabstop=4
set shiftwidth=4
"允许使用退格键,或set backspace=2
set backspace=eol,start,indent
set whichwrap+=<,>,h,l
"取消换行
set nowrap
"启动的时候不显示那个援助索马里儿童的提示
set shortmess=atI
"在被分割的窗口间显示空白,便于阅读
set fillchars=vert:\ ,stl:\ ,stlnc:\
"光标移动到buffer的顶部和底部时保持3行距离, 或set so=3
set scrolloff=3
"设定默认解码
set fenc=utf-8
set fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936
"设定字体
set guifont=Courier_New:h11:cANSI
set guifontwide=新宋体:h11:cGB2312
"设定编码
set enc=utf-8
set fileencodings=ucs-bom,utf-8,chinese
set langmenu=zh_CN.UTF-8
language message zh_CN.UTF-8
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
"自动补全
filetype plugin indent on
set completeopt=longest,menu
"自动补全命令时候使用菜单式匹配列表
set wildmenu
autocmd FileType ruby,eruby set omnifunc=rubycomplete#Complete
autocmd FileType python set omnifunc=pythoncomplete#Complete
autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS
autocmd FileType html set omnifunc=htmlcomplete#CompleteTags
autocmd FileType css set omnifunc=csscomplete#CompleteCSS
autocmd FileType xml set omnifunc=xmlcomplete#CompleteTags
autocmd FileType java set omnifunc=javacomplete#Complet