code | 效果 |
---|---|
set ignorecase | 搜索模式里忽略大小写 |
set number | 设置vim显示代码行号 |
set nonumber | 取消vim显示代码行号 |
set relativenumber | 显示光标所在的当前行的行号,其他行都为相对于该行的相对行号 |
set cursorline | 光标所在的行下加一根下划线 |
set smartcase | 如果搜索模式包含大写字符,不使用 ‘ignorecase’ 选项。只有在输入搜索模式并且打开 ‘ignorecase’ 选项时才会使用 |
set autowrite | 自动把内容写回文件也就是自动保存 |
set autoindent | 设置自动对齐(缩进):即每行的缩进值与上一行相等;使用 noautoindent 取消设置 |
set smartindent | 智能对齐方式 |
set tabstop=4 | 设置制表符(tab键)的宽度 |
set softtabstop=4 | 设置软制表符的宽度 |
set shiftwidth=4 | (自动) 缩进使用的4个空格 |
set showmatch | 设置匹配模式,显示匹配的括号 |
set hlsearch | 设置高亮显示搜索字符串 |
set nocompatible | 不与 Vi 兼容(采用 Vim 自己的操作命令) |
syntax on | 打开语法高亮,自动识别代码,使用多种颜色显示 |
set showmode | 在底部显示,当前处于命令模式还是插入模式 |
set showcmd | 命令模式下,在底部显示,当前键入的指令。比如输入快捷键将在底部显示具体命令 |
set mouse=a | 支持使用鼠标 |
set encoding=utf-8 | 使用 utf-8 编码 |
set t_Co=256 | 启用256色 |
set autoindent | 按下回车键后,下一行的缩进会自动跟上一行的缩进保持一致 |
set tabstop=2 | 按下 Tab 键时,Vim 显示的空格数 |
set shiftwidth=4 | 在文本上按下 >(增加一级缩进)、<(取消一级缩进)或者==(取消全部缩进)时,每一级的字符数。 |
set textwidth=80 | 设置行宽,即一行显示多少个字符 |
set wrap | 自动折行,即太长的行分成几行显示 |
set nowrap | 关闭自动折行 |
set linebreak | 只有遇到指定的符号(比如空格、连词号和其他标点符号),才发生折行。也就是说,不会在单词内部折行 |
set wrapmargin=2 | 指定折行处与编辑窗口的右边缘之间空出的字符数 |
set scrolloff=5 | 垂直滚动时,光标距离顶部/底部的位置(单位:行) |
set sidescrolloff=15 | 水平滚动时,光标距离行首或行尾的位置(单位:字符)。该配置在不折行时比较有用 |
set laststatus=2 | 是否显示状态栏。0 表示不显示,1 表示只在多窗口时显示,2 表示显示 |
set ruler | 在状态栏显示光标的当前位置(位于哪一行哪一列) |
set showmatch | 光标遇到圆括号、方括号、大括号时,自动高亮对应的另一个圆括号、方括号和大括号 |
set incsearch | 输入搜索模式时,每输入一个字符,就自动跳到第一个匹配的结果 |
set ignorecase | 搜索时忽略大小写 |
set spell spelllang=en_us | 打开英语单词的拼写检查 |
set nobackup | 不创建备份文件。默认情况下,文件保存时,会额外创建一个备份文件,它的文件名是在原文件名的末尾,再添加一个波浪号(〜) |
set noswapfile | 不创建交换文件。交换文件主要用于系统崩溃时恢复文件,文件名的开头是.、结尾是.swp |
set undofile | 保留撤销历史,Vim 会在编辑时保存操作历史,用来供用户撤消更改。默认情况下,操作记录只在本次编辑时有效,一旦编辑结束、文件关闭,操作历史就消失了。打开这个设置,可以在文件关闭后,操作记录保留在一个文件里面,继续存在。这意味着,重新打开一个文件,可以撤销上一次编辑时的操作。撤消文件是跟原文件保存在一起的隐藏文件,文件名以.un~开头 |
set autochdir | 自动切换工作目录。这主要用在一个 Vim 会话之中打开多个文件的情况,默认的工作目录是打开的第一个文件的目录。该配置可以将工作目录自动切换到,正在编辑的文件的目录 |
set noerrorbells | 出错时,不要发出响声 |
set visualbell | 出错时,发出视觉提示,通常是屏幕闪烁 |
set history=1000 | Vim 需要记住多少次历史操作 |
set autoread | 打开文件监视。如果在编辑过程中文件发生外部改变(比如被别的编辑器编辑了),就会发出提示 |
持续更新… |
vim博大精深,先看看有哪比较使用的vim插件
Linux 为源代码生成ctags:
1.sudo apt-get install ctags安装vim插件
2.cd到代码根目录,比如说cd ./linux-5.x.x
2.生成tags文件,根目录执行ctags -R xxx(xxx为需要生成tags的文件目录)
3.vim -t tags(tags替换为想要查找查找的变量或函数名)
ex:vim -t miscdevice
其他指令:
ctrl + ] 跳转到贯标所在函数或者结构体的定义处
ctrl + T 返回查找或跳转
ctrl + G 查看当前vim打开文件和文件路径
Linux 为源代码生成cscope:
1.sudo apt-get install cscope安装vim插件
2.cd到代码根目录并执行命令 cscope -Rbq生成索引库
3.vim中添加cscope.out,: cs add cscope.out
vim支持8种cscope的查询功能:cs find -s tags
命令 | 说明 |
---|---|
s | 查找C语言符号,即查找函数名、宏、枚举值等出现的地方 |
g | 查找函数、宏、枚举等定义的位置,类似ctags所提供的功能 |
d | 查找本函数调用的函数 |
c | 查找调用本函数的函数 |
t | 查找指定的字符串 |
e | 查找egrep模式,相当于egrep功能,但查找速度快多了 |
f | 查找并打开文件,类似vim的find功能 |
i | 查找包含本文本文件的文件 |
:hi ModeMsg ctermfg=Green "修改cscope搜索结果颜色
Linux vim插件vundle:
1.从git上clone代码到本地/home/xxx/.vim/bundle文件夹下
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
curits@curits-virtual-machine:~/.vim/bundle$ pwd
/home/curits/.vim/bundle
2.只需要在/home/xxx/.vimrc中添加"Plugin xxx",在vim 中输入:PluginInstall 就会从网络上下载插件并安装。
使用示例:
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'majutsushi/tagbar'"Tag bar" "需要自动下载的插件
call vundle#end()
有很多比较有用的插件,分享一波:
Plugin ‘kien/ctrlp.vim’
vim 插件 Ctrlp.vim 可以在vim中在内核代码中查找想要找的文件;
默认快捷键 | 含义 |
---|---|
ctp + p | 查找文件 |
ctp + j | 向上选择查找结果 |
ctp + k | 向下选择查找结果 |
ctp + x | 在当前窗口水平分屏打开文件 |
ctp + v | 在当前窗口垂直分屏打开文件 |
改变不同模式下光标的现实模式
vim ~/.vimrc 中添加以下配置信息,后面有具体的说明信息。
"Mode Settings
let &t_SI.="\e[5 q" "SI = INSERT mode
let &t_SR.="\e[4 q" "SR = REPLACE mode
let &t_EI.="\e[1 q" "EI = NORMAL mode (ELSE)
"Cursor settings:
" 1 -> blinking block
" 2 -> solid block
" 3 -> blinking underscore
" 4 -> solid underscore
" 5 -> blinking vertical bar
" 6 -> solid vertical bar