版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
一、vi/vim 配置文件
系统的vim配置文件为/etc/vimrc文件,用户级别的配置文件在~/.vimrc文件中,如果没有.vimrc文件,则先创建.vimrc文件
touch ~/.vimrc
- 1
vimrc部分常用配置如下:
set sw=4 "自动缩进时,缩进尺寸为4个空格
set ts=4 "tab宽度为4个字符
set et "编辑时将所有tab替换为空格
set smarttab "删除时,一个删除键删除4个空格
set selection=inclusive "指定在选择文本时,光标所在位置也属于被选中范围
set autoindent "设置自动缩进
set number "显示行号
set ru "显示vim状态栏,显示行号、列号
set hls "搜索时高亮显示被找到的文本
set encoding=utf-8 "设置当前字符编码为UTF-8
set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1 "如果文件编码与vim编码不一致,按顺序尝试解码,如果成功则将fileencoding设置为这个值,在文件保存/打开时,自动对文件编解码转换
syntax on "打开关键字上色
filetype plugin indent on "启动文件类型自动识别、文件类型相关插件、按文件类型的自动缩进
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
二、vi/vim 常用快捷键
vi有三种模式:插入模式、命令模式、底行模式
- 插入模式:可插入字符,esc退出
- 命令模式:可进行移动光标,删除字符,复制字符等操作
- 底行模式:顾名思义,可在末行进行文本匹配、跳转、文本替换等操作
快捷键 | 功能 |
---|---|
:n | 跳转到第n行 |
:x | 保存并退出 |
:wq | 保存并退出 |
:w | 保存 |
:q | 退出编辑器 |
:q! | 退出编辑器,不保存 |
ctrl + r | 恢复上一步被撤销的操作 |
shift + 方向键 | 按指定方向跳一个单词 |
a | 在光标右侧添加文本 |
i | 在光标左侧添加文本 |
A | 在行末添加文本 |
I | 在行首添加文本 |
O | 在当前行上添加新行 |
o | 在当前行下添加新行 |
R | 替换编辑光标及后面的文本 |
J | 合并当前行及下一行为一行 |
h,j,k,l | 左、下、上、右 |
空格,backspace,enter,- | 右、左、下一行行首、上一行行首 |
/xxx | 向下搜索字符串xxx |
?xxx | 向上搜索字符串xxx |
n | 向下搜索前一个搜索动作 |
N | 向上搜索前一个搜索动作 |
x | 删除当前字符 |
nx | 删除光标开始的n字符 |
dd | 删除行 |
ndd | 向下删除当前行在内的n行 |
u | 撤销上一步操作 |
U | 撤销当前行的所有操作 |
n+ | 向下跳n行 |
n- | 向上跳n行 |
nG | 跳转到行号为n的行 |
G | 跳转到文件底 |
:set number | 显示行号 |
:set nonumber | 不显示行号 |
yy | 复制当前行到缓存区 |
nyy | 复制当前行及向下n行到缓存区 |
yw | 复制光标开始到词尾的字符 |
nyw | 复制光标开始的n个单词 |
y^ | 复制光标到行首的内容 |
y$ | 复制光标到行尾的内容 |
p | 在光标后粘贴缓存区的内容 |
P | 在光标前粘贴缓存区的内容 |
:s/old/new | 用new替换当前行中首次出现的old |
:s/old/new/g | 用new替换当前行中所有的old |
:n,m s/old/new/g | 用new替换n到m行中所有的old |
:%s/old/new/g | 用new替换当前文件中所有的old |
:filetype | 查看vim文件类型检测功能是否开启 |
:set filetype=java | 将当前文件类型设置为java,将会按照java文件进行文本高亮 |
ctrl + n/p | 代码补全[插入模式] |
三、vi/vim插件使用(vundle插件管理)
下文以文件树插件nerdtree的安装为例。如果没有.vim文件夹,则首先创建该文件夹
mkdir -p ~/.vim/bundle
- 1
安装Vundle,使用Vundle作插件管理,github地址
git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim
- 1
编辑~/.vimrc文件,加入如下片段:
...
set nocompatible " be iMproved, required
filetype off " required
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Bundle 'scrooloose/nerdtree' "文件目录插件
"可在此处添加其他插件
call vundle#end() " required
filetype plugin indent on " required
...
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
保存并退出,控制台进入vim,执行:PluginInstall 安装插件,安装完成后会有Done! 状态提示
安装成功后在vim中执行:NERDTree
NERDTree的基本操作如下:
快捷键 | 功能 |
---|---|
o | 展开 |
ctrl + w | 两次执行切换窗口 |
? | 查看帮助 |
插件使用其他常用命令如下:
命令 | 功能 |
---|---|
:BundleList | 查看插件列表 |
:BundleClean | 清除插件 |
:BundleUpdate | 更新插件 |
:BundleSearch xx | 搜索插件xx |