Linux-ubuntu中.vimrc配置
- 格式:doc
- 大小:79.00 KB
- 文档页数:14
vim配置⽂件.vimrc详解"是否兼容VI,compatible为兼容,nocompatible为不完全兼容"如果设置为compatible,则tab将不会变成空格set nocompatible"设置⿏标运⾏模式为WINDOWS模式behave mswin"设置菜单语⾔set encoding=chineseset langmenu=zh_CN.UTF-8" =========" 功能函数" =========" 获取当前⽬录func GetPWD()return substitute(getcwd(), "", "", "g")endf" =====================" 多语⾔环境" 默认为 UTF-8 编码" =====================if has("multi_byte")set encoding=utf-8" English messages only"language messages zh_CN.utf-8if has('win32')language englishlet &termencoding=&encodingendifset fencs=utf-8,gbk,chinese,latin1set formatoptions+=mMset nobomb " 不使⽤ Unicode 签名if v:lang =~? '^\(zh\)\|\(ja\)\|\(ko\)'set ambiwidth=doubleendifelseechoerr "Sorry, this version of (g)vim was not compiled with +multi_byte"endif" =========" 环境配置" =========" 保留历史记录set history=400" 命令⾏于状态⾏set ch=1set stl=\ [File]\ %F%m%r%h%y[%{&fileformat},%{&fileencoding}]\ %w\ \ [PWD]\ %r%{GetPWD()}%h\ %=\ [Line]\ %l,%c\ %=\ %P set ls=2 " 始终显⽰状态⾏" 制表符set tabstop=4"把tab转成空格"set expandtabset smarttabset shiftwidth=4set softtabstop=4" 状态栏显⽰⽬前所执⾏的指令set showcmd" ⾏控制set linebreakset nocompatibleset textwidth=80set wrap" ⾏号和标尺set numberset rulerset rulerformat=%15(%c%V\ %p%%%)" 控制台响铃:set noerrorbells:set novisualbell:set t_vb= "close visual bell" 插⼊模式下使⽤ <BS>、<Del> <C-W> <C-U>set backspace=indent,eol,start" 标签页set tabpagemax=20set showtabline=2" 缩进智能对齐⽅式set autoindentset smartindent" ⾃动重新读⼊set autoread"代码折叠"设置折叠模式set foldcolumn=4"光标遇到折叠,折叠就打开"set foldopen=all"移开折叠时⾃动关闭折叠"set foldclose=all"zf zo zc zd zr zm zR zM zn zi zN"依缩进折叠" manual ⼿⼯定义折叠" indent 更多的缩进表⽰更⾼级别的折叠" expr ⽤表达式来定义折叠" syntax ⽤语法⾼亮来定义折叠" diff 对没有更改的⽂本进⾏折叠" marker 对⽂中的标志折叠set foldmethod=syntax"启动时不要⾃动折叠代码set foldlevel=100"依标记折叠set foldmethod=marker"语法⾼亮syntax enablesyntax on"设置配⾊set guifont=Courier\ New:h12colorscheme desert"设定⽂件浏览器⽬录为当前⽬录set bsdir=buffer" ⾃动切换到⽂件当前⽬录set autochdir"在查找时忽略⼤⼩写set ignorecaseset incsearchset hlsearch"设置命令⾏的⾼度set cmdheight=2"显⽰匹配的括号set showmatch"增强模式中的命令⾏⾃动完成操作set wildmenu"使PHP识别EOT字符串hi link phpheredoc string"php语法折叠let php_folding = 1"允许在有未保存的修改时切换缓冲区set hidden"实现全能补全功能,需要打开⽂件类型检测"filetype plugin indent on"打开vim的⽂件类型⾃动检测功能"filetype on"保存⽂件的格式顺序set fileformats=dos,unix"置粘贴模式,这样粘贴过来的程序代码就不会错位了。
ubuntu 下设置vim高亮设置vim语法高亮显示和自动缩进一、、首先,确认你的linux系统是否安装了功能完整的且足够新的vim。
安装vim:# sudo apt-get install vim-full二、接下来设置vim的配置文件1、配置文件的位置在目录/etc/vim 下面,有个名为vimrc的文件,这是系统中公共的vim 配置文件,对所有用户都有效。
而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc”。
例如,/root目录下,通常已经存在一个.vimrc文件。
2、设置语法高亮显示1) 打开vimrc#sudo cd /etc/vim#sudo gedit vimrc添加以下语句来使得语法高亮显示:syntax on2) 如果此时语法还是没有高亮显示,那么在/etc目录下的profile文件中添加以下语句:export TERM=xterm-color3、设置Windows风格的C/C++自动缩进(添加以下set语句到vimrc中)1)设置(软)制表符宽度为4:set tabstop=4set softtabstop=42)设置缩进的空格数为4set shiftwidth=43)设置自动缩进:即每行的缩进值与上一行相等;使用noautoindent 取消设置:set autoindent4)设置使用C/C++ 语言的自动缩进方式:set cindent5)设置C/C++语言的具体缩进方式(以我的windows风格为例):set cinoptions={0,1s,t0,n-2,p2s,(03s,=.5s,>1s,=1s,:1s6)如果想在左侧显示文本的行号,可以用以下语句:set nu7)最后,如果没有下列语句,就加上吧:if &term=="xterm"set t_Co=8set t_Sb=^[[4%dmset t_Sf=^[[3%dmendif4、sudo vim ~/.exrc添加如下内容:if &t_Co > 1syntax enableendif。
Vim---配置实⽤的.vimrc⽂件配置⾃⼰电脑的vim,配置⼀个根据个⼈习惯使⽤的.vimrc⽂件。
我的有以下功能等,读者可以根据⾃⼰的个⼈喜好去配置⾃⼰的vim。
1.⾃动插⼊⽂件头,新建C、C++源⽂件时⾃动插⼊表头:包括⽂件名、作者、联系⽅式、建⽴时间等。
(我个⼈是不太喜欢新建源⽂件时⾃动插⼊表头⽂件名,所以将其注释,读者可根据需求⾃⾏更改)2.按“F2”可以直接消除代码中的空⾏3.“F3”可列出当前⽬录⽂件,打开树状⽂件⽬录4.⽀持⿏标选择、⽅向键移动5.代码⾼亮,⾃动缩进,显⽰⾏号,显⽰状态⾏(我个⼈不太喜欢显⽰⾏号,显⽰状态⾏,读者可根据需求⾃⾏修改)6.按“Ctrl + P”可⾃动补全7.[]、{}、()、""、' '等都⾃动补全8.其他功能读者可以研究以下⽂件下⾯是在Linux下配置⾃⼰的vim的⽅法:⼀:1.⾸先打开linux的终端,使⽤ su root命令切换⾄root权限。
2.使⽤ls -al命令会打开当前的所有⽂件包括隐藏⽂件,如下图,找到.vimrc⽂件,如果没有这个⽂件,可以去创建⼀个.vimrc⽂件。
3.之后打开.vimrc⽂件将下⾯的代码粘贴进去,然后根据个⼈需求去修改为适合⾃⼰的.vimrc⽂件,保存退出,然后你可以⽤vim创建⼀个⽂件看⼀下效果,然后再根据个⼈需求⾃⾏修改。
这个⽅法配置的.vimrc⽂件可以由⽤户权限去⽤vim创建⽂件进⾏编辑,root权限⽤vim创建的⽂件⽆法达到你配置的效果。
⼆:如果你想要你配置的⽂件达到⽆论是⽤户权限还是root权限都可以⽤vim创建的⽂件达到你配置的⽂件的效果,可以⽤如下⽅法。
1.⾸先你转到根⽬录,在根⽬录下有个 etc 的⽂件夹,然后进到etc的⽬录下,然后列出当前的所有⽂件。
2.在当前的⽬录中的所有⽂件你会找到⼀个vimrc的⽂件,然后打开该⽂件将代码粘贴进去,然后根据个⼈需求去修改为适合⾃⼰的vimrc⽂件,保存退出,然后此时⽆论你⽤root权限还是⽤户权限⽤vim去创建⽂件都可以达到你配置的效果(提醒⼀下,如果你配置vimrc⽂件出错时,建议你在进⼊etc/⽬录下时,在修改vimrc⽂件之前可以先保存⼀份vimrc⽂件,之后再修改vimrc,防⽌你出错时还可以⽤备份的vimrc⽂件)。
vim配置显⽰⾏号和语法⾼亮即.vimrc⽂件的配置在终端下使⽤vim进⾏编辑时,默认情况下,编辑的界⾯上是没有显⽰⾏号、语法⾼亮度显⽰、智能缩进等功能的。
为了更好的在vim下进⾏⼯作,需要⼿动设置⼀个配置⽂件:.vimrc。
在启动vim时,当前⽤户根⽬录下的.vimrc⽂件会被⾃动读取,该⽂件可以包含⼀些设置甚⾄脚本,所以,⼀般情况下把.vimrc ⽂件创建在当前⽤户的根⽬录下⽐较⽅便,即创建的命令为:$vi ~/.vimrc设置完后$:x 或者 $wq进⾏保存退出即可。
下⾯给出⼀个例⼦,其中列出了经常⽤到的设置,详细的设置信息请参照参考资料:“双引号开始的⾏为注释⾏,下同“去掉讨厌的有关vi⼀致性模式,避免以前版本的⼀些bug和局限set nocompatible“显⽰⾏号set nummber“检测⽂件的类型filetype on“记录历史的⾏数set history=1000“背景使⽤⿊⾊set background=dark“语法⾼亮度显⽰syntax on“下⾯两⾏在进⾏编写代码时,在格式对起上很有⽤;“第⼀⾏,vim使⽤⾃动对起,也就是把当前⾏的对起格式应⽤到下⼀⾏;“第⼆⾏,依据上⾯的对起格式,智能的选择对起⽅式,对于类似C语⾔编“写上很有⽤set autoindentset smartindent“第⼀⾏设置tab键为4个空格,第⼆⾏设置当⾏之间交错时使⽤4个空格set tabstop=4set shiftwidth=4“设置匹配模式,类似当输⼊⼀个左括号时会匹配相应的那个右括号set showmatch“去除vim的GUI版本中的toolbarset guioptions-=T“当vim进⾏编辑时,如果命令错误,会发出⼀个响声,该设置去掉响声set vb t_vb=“在编辑过程中,在右下⾓显⽰光标位置的状态⾏set ruler“默认情况下,寻找匹配是⾼亮度显⽰的,该设置关闭⾼亮显⽰set nohls“查询时⾮常⽅便,如要查找book单词,当输⼊到/b时,会⾃动找到第⼀“个b开头的单词,当输⼊到/bo时,会⾃动找到第⼀个bo开头的单词,依“次类推,进⾏查找时,使⽤此设置会快速找到答案,当你找要匹配的单词“时,别忘记回车set incsearch“修改⼀个⽂件后,⾃动进⾏备份,备份的⽂件名为原⽂件名加“~“后缀if has(“vms”)set nobackupelseset backupendif如果去除注释后,⼀个完整的.vimrc配置信息如下所⽰:复制代码代码如下:set nocompatibleset nummberfiletype onset history=1000set background=darksyntax onset autoindentset smartindentset tabstop=4set shiftwidth=4set showmatchset guioptions-=Tset vb t_vb=set rulerset nohlsset incsearchif has(“vms”)set nobackupelseset backupendif如果设置完后,发现功能没有起作⽤,检查⼀下系统下是否安装了vim-enhanced包,查询命令为:$rpm –q vim-enhanced参考资料:1.vim的完全翻译版在下⾯连接处可以找到可以下栽其中的⼀个PDF版本,⾥⾯介绍的很详细,强烈推荐:)2.更详细的vim信息可以访问:3.⼀个带有英⽂注释的.vimrc例⼦关于vi颜⾊的问题,上⽹找了若⼲篇⽂章才搞定,⾃⼰⼩结⼀下。
文本编辑利器Linux终端中的vi和nano命令介绍在Linux操作系统中,文本编辑是开发者、系统管理员和其他用户必不可少的任务之一。
为了有效地编辑文本文件,Linux提供了一些强大的文本编辑工具。
本文将介绍Linux终端中两个常用的文本编辑命令,分别是vi和nano。
I. vi命令vi是一种强大且广泛使用的文本编辑器,在几乎所有的Linux发行版中都默认安装。
1. 打开文件要使用vi编辑器,可以在终端中输入以下命令:```vi 文件名```这将打开指定文件以进行编辑。
如果文件不存在,则会创建一个新文件。
2. 基本编辑打开文件后,可以使用以下命令进行基本的编辑操作:- i:进入插入模式,在当前光标位置插入文本。
- a:进入追加模式,在当前光标位置之后插入文本。
- o:在当前行之后插入新的一行。
- dd:删除当前行。
- yy:复制当前行。
- p:粘贴已复制的内容。
3. 保存和退出在vi编辑器中,保存和退出文件需要使用以下命令:- :w:保存文件但不退出vi。
- :q:退出vi。
- :wq:保存文件并退出vi。
II. nano命令nano是另一个常用的文本编辑器,相比于vi,nano界面更加友好,更适合初学者使用。
1. 打开文件要使用nano编辑器,可以在终端中输入以下命令:```nano 文件名```这将打开指定文件以进行编辑。
如果文件不存在,则会创建一个新文件。
2. 基本编辑打开文件后,可以使用以下命令进行基本的编辑操作:- 使用键盘上的方向键移动光标。
- 在光标位置插入和编辑文本。
- 使用Ctrl + O来保存文件。
- 使用Ctrl + X来退出nano。
3. 其他功能nano还提供了其他一些有用的功能,例如:- Ctrl + K:剪切当前行。
- Ctrl + U:粘贴已剪切的内容。
- Ctrl + G:显示帮助信息。
- Ctrl + W:查找关键字。
总结:vi和nano是Linux终端中两个常用的文本编辑器命令。
1. Vim (很强的编辑器)安装: 可以直接在应用程序/ubuntu软件中心/vim 然后点击GVim 安装;安装完成后,Vim 主要配置文件(vimrc)可以在usr/share/vim 中查看到,并且所有用户共享的配置文件,当然属于自己用户的配置可以在/home/{your_user} 下建立一个.vim 的隐藏文件夹,然后把自己需要配置文件与插件放进去。
提供一份现在使用的配置 vimrc:" All system-w ide defaults are set in $VIMRUNTIME/debian.vim (usually just" /usr/share/vim/vimcurrent/debian.vim) and sourced by the call to :runtime" you can find below. If you wish to change any of those settings, you should" do it in this file (/etc/vim/vimrc), since debian.vim w ill be overwritten" everytrime an upgrade of the vim packages is performed. It is recommended to" make changes after sourcing debian.vim since it alters the value of the" 'compatible' option." This line should not be removed as it ensures that various options are" properl y set to work with the Vim-related packages available in Debian.runtime! debian.vim" Uncomment the next line to make Vim more Vi-compatible" NOTE: debian.vim sets 'nocompatible'. Setting 'compatible' changes numerous" options, so any other options should be set AFTER setting 'compatible'."set compatible" Vim5 and later versions support syntax highlighting. Uncommenting the" following enables syntax highlighting by default.if has("syntax")syntax onendif" If using a dark background w ithin the editing area and syntax highlighting" turn on this option as w ell"set background=dark" Uncomment the follow ing to have Vim jump to the last position w hen" reopening a file"if has("autocmd")" au BufReadP ost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif"endif" Uncomment the follow ing to have Vim load indentation rules and plugins" according to the detected filetype."if has("autocmd")" filetype plugin indent on"endif" The follow ing are commented out as they cause vim to behave a lot" differently from regular Vi. They are highly recommended though."set showcmd " Show (partial) command in status line."set show match " Show matching brackets."set ignorecase " Do case insensitive matching"set smartcase " Do smart case matching"set incsearch " Incremental search"set auto write " Automatically save before commands like :next and :make "set hidden " Hide buffers when they are abandoned"set mouse=a " E nable mouse usage (all modes)" Source a global configuration file if availableif filereadable("/etc/vim/vimrc.local")source /etc/vim/vimrc.localendifcolor slateset enc=utf-8set fencs=utf-8,ucs-bom,shift-jis,gb18030,gbk,gb2312,cp936set langmenu=zh_CN.UTF-8language message zh_CN.UTF-8set helplang=cnset aiset nuset ruset expandtabset tabstop=2set shift w idth=2set guioptions-=mset guioptions-=Tset ignorecase "搜索不区分大小写set foldopen=allset hlsearch "高亮显示搜索"设置工作目录为当前编辑文件的目录set bsdir=bufferset autochdir#设置.thor文件与ruby文件显示同样高亮au BufNew File,BufRead *.thor set filetype=ruby:inoremap ( ()<E SC>i:inoremap { { }<E SC>i<LEFT>:inoremap [ []<E SC>i:inoremap " ""<E SC>i:inoremap ' ''<E SC>i:inoremap < <><ESC>isource $VIMRUNTIME/msw in.vim "加载Windows快捷键映射behave mswin/* 直接把上面内容复制到vimrc 文件中就可以*/现在就可以enjoy your vim 了~~。
linux修改配置文件常用的命令
在Linux系统中,我们经常需要修改配置文件来改变系统行为,以下是一些常用的命令:
1. vim:vim是Linux常用的文本编辑器,可以用来打开配置文件,进行修改和保存。
2. cat:cat命令可以查看文件内容,并且可以将多个文件合并输出。
3. echo:echo命令可以将文本输出到终端或文件中,可以用来添加新行或修改配置项。
4. grep:grep命令可以搜索文本,并输出匹配的行,可以用来查找特定的配置项。
5. sed:sed命令可以编辑文本,可以用来修改配置项或删除行。
6. awk:awk命令可以对文本进行处理和分析,可以用来提取和修改配置项。
7. mv:mv命令可以用来移动和重命名文件,可以用来备份和恢复配置文件。
以上是Linux修改配置文件常用的命令,掌握它们可以方便地修改和管理系统配置。
- 1 -。
2016年04月最近在使用ubuntu,已经很少进入windows平台了。
在linux下,要编辑文件或者其他的文本文件,哪那么一个ubuntulinux下的强大的文本编辑工具就不得不提了,那就是VI编辑器。
下面把VI常用到的命令行贴出来。
进入vi的命令vifilename:打开或新建文件,并将光标置于第一行首vi+nfilename:打开文件,并将光标置于第n行首vi+filename:打开文件,并将光标置于最后一行首vi+/patternfilename:打开文件,并将光标置于第一个与pattern匹配的串处vi-rfilename:在上次正用vi编辑时发生系统崩溃,恢复filename vifilename….filename:打开多个文件,依次进行编辑移动光标类命令h:光标左移一个字符l:光标右移一个字符space:光标右移一个字符Backspace:光标左移一个字符k或Ctrl+p:光标上移一行j或Ctrl+n:光标下移一行Enter:光标下移一行w或W:光标右移一个字至字首b或B:光标左移一个字至字首e或E:光标右移一个字至字尾):光标移至句尾(:光标移至句首}:光标移至段落开头{:光标移至段落结尾nG:光标移至第n行首n+:光标下移n行n-:光标上移n行n$:光标移至第n行尾H:光标移至屏幕顶行M:光标移至屏幕中间行L:光标移至屏幕最后行0:(注意是数字零)光标移至当前行首$:光标移至当前行尾屏幕翻滚类命令Ctrl+u:向文件首翻半屏Ctrl+d:向文件尾翻半屏Ctrl+f:向文件尾翻一屏Ctrl+b;向文件首翻一屏nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。
插入文本类命令i:在光标前I:在当前行首a:光标后A:在当前行尾o:在当前行之下新开一行O:在当前行之上新开一行r:替换当前字符R:替换当前字符及其后的字符,直至按ESC键s:从当前光标位置处开始,以输入的文本替代指定数目的字符S:删除指定数目的行,并以所输入文本代替之ncw或nCW:修改指定数目的字nCC:修改指定数目的行删除命令ndw或ndW:删除光标处开始及其后的n-1个字do:删至行首d$:删至行尾ndd:删除当前行及其后n-1行x或X:删除一个字符,x删除光标后的,而X删除光标前的Ctrl+u:删除输入方式下所输入的文本搜索及替换命令/pattern:从光标开始处向文件尾搜索pattern?pattern:从光标开始处向文件首搜索patternn:在同一方向重复上一次搜索命令N:在反方向上重复上一次搜索命令:s/p1/p2/g:将当前行中所有p1均用p2替代:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代:g/p1/s//p2/g:将文件中所有p1均用p2替换选项设置all:列出所有选项设置情况term:设置终端类型ignorance:在搜索中忽略大小写list:显示制表位(Ctrl+I)和行尾标志($)number:显示行号report:显示由面向行的命令修改过的数目terse:显示简短的警告信息warn:在转到别的文件时若没保存当前文件则显示NOwrite信息nomagic:允许在搜索模式中,使用前面不带“”的特殊字符nowrapscan:禁止vi在搜索到达文件两端时,又从另一端开始mesg:允许vi显示其他用户用write写到自己终端上的信息最后行方式命令:n1,n2con3:将n1行到n2行之间的内容拷贝到第n3行下:n1,n2mn3:将n1行到n2行之间的内容移至到第n3行下:n1,n2d:将n1行到n2行之间的内容删除:w:保存当前文件:efilename:打开文件filename进行编辑:x:保存当前文件并退出:q:退出vi:q!:不保存文件并退出vi:!command:执行shell命令command:n1,n2w!command:将文件中n1行至n2行的内容作为command的输入并执行之,若不指定n1,n2,则表示将整个文件内容作为command的输入:r!command:将命令command的输出结果放到当前行寄存器操作"?nyy:将当前行及其下n行的内容保存到寄存器?中,其中?为一个字母,n为一个数字"?nyw:将当前行及其下n个字保存到寄存器?中,其中?为一个字母,n 为一个数字"?nyl:将当前行及其下n个字符保存到寄存器?中,其中?为一个字母,n为一个数字"?p:取出寄存器?中的内容并将其放到光标位置处。
vimrc语法
vimrc语法是指在Vim编辑器中设置配置文件vimrc的语法规则。
vimrc文件是Vim的配置文件,它可以用来配置Vim编辑器的行为和外观。
在vimrc文件中,我们可以设置键盘映射、颜色方案、插件、缩进等等。
以下是vimrc语法的一些常用规则:
1. 注释:在vimrc文件中,注释以双引号(')或单引号(')开头,可以在行尾或行中添加注释。
2. 设置选项:在vimrc文件中,我们可以使用set命令来设置选项。
例如:set number表示显示行号,set tabstop=4表示将tab 键转换为4个空格。
3. 定义快捷键:在vimrc文件中,我们可以使用map命令来定义快捷键。
例如:map <leader>f :find<space>表示将leader键(默认是)和f键绑定为查找命令。
4. 颜色方案:在vimrc文件中,我们可以使用colorscheme命令来设置颜色方案。
例如:colorscheme desert表示使用desert颜色方案。
5. 插件管理:在vimrc文件中,我们可以使用插件管理工具如Vundle、Pathogen等来管理插件。
例如:使用Vundle管理插件,我们需要在vimrc文件中添加类似于Plugin 'VundleVim/Vundle.vim'的语句。
以上是vimrc语法的一些常用规则,通过学习和掌握这些规则,我们可以更好地配置Vim编辑器,提高我们的编辑效率。
ubuntu上使⽤vim编辑⽂本内容1. 什么是 vim?Vim是从 vi 发展出来的⼀个⽂本编辑器。
代码补完、编译及错误跳转等⽅便编程的功能特别丰富,在程序员中被⼴泛使⽤。
简单的来说, vi 是⽼式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地⽅。
vim 则可以说是程序开发者的⼀项很好⽤的⼯具。
2. 检查系统中是否安装了vim?vim --version如果出现vim版本和运⾏情况,说明已经存在vim程序。
否说明没有安装vim程序,参考vim 安装⽂档进⾏安装。
3.使⽤vim命令创建或打开⽂件,编辑⽂件< 1 >. 如果存在vimEditorFile⽂件,则打开⽂件,如果不则则在内存中创建⼀个vimEditorFile.txt⽂件,没有进⾏保存⽂件是不存在的vim vimEditorFile.txt< 2 >.在⽂件中编辑⽂本,按下 i 进⼊编辑,此时在窗体最底部会出现 -- INSERT --< 3 >.使⽤键盘输⼊编辑⽂字< 4. > 输⼊完毕后,完成输⼊,退出输⼊,按 ESC ,这个时候会发现底部的 -- INSERT --没有了< 5. > 保存编辑的⽂件,并且退出vim编辑输⼊ :wq 命令,按回车键< 6. > 查看创建的新⽂件输⼊ll< 7. > 使⽤vim命令打开 EditorFile.txt ⽂件查看⽂件内容< 8. > 没有进⾏修改,不需要保存直接退出,输⼊ :q 命令4.常⽤命令备注保存,不退出vi --------------------------------------------- :w强制保存,不退出vi --------------------------------------- :w!将修改另外保存到file中,但不退出vi(不常⽤)------ :w file 保存,并退出vi --------------------------------------------- :wq 或 :x 强制保存,并退出vi --------------------------------------- :wq!不保存,并退出vi ------------------------------------------ :q不保存,并强制退出vi ------------------------------------ :q!放弃所有修改,从上次保存⽂件开始再编辑 ----------- :e!。
" 在处理未保存或只读文件的时候,弹出确认 set confirm " 带有如下符号的单词不要被换行分割set iskeyword+=_,$,@,%,#,-"Tlist 和 wm的设置"命令模式输入wm打开Tlist和WMset showcmd"Taglist插件的设置let g:Tlist_Use_Right_Window=1let g:Tlist_Show_One_File=1let g:Tlist_Compact_Format=1let Tlist_Exit_OnlyWindow=1let g:winManagerWindowLayout='FileExplorer|TagList'"Tree explorer的设置let g:treeExplVertical=1let g:treeExplWinSize=30"gvim打开以后最大化"au GUIEnter * simalt ~x"光标在窗口上下边界时距离边界7行即开始滚屏set so=7"配色" Avoid clearing hilight definition in pluginsif !exists("g:vimrc_loaded")" color schemeif has("gui_running")set guioptions-=T "隐藏工具栏set guioptions-=mset guioptions-=Lset guioptions-=rcolor blackboard"colorscheme professional"set guifont=YaHeiConsolasHybrid\ 13set guifont=Monaco\ 13"中文字体set guifontset=Microsoft\ YaHei\ 13"对于html,xml文件,通过ctrl+_来closetagif has("autocmd")autocmd FileTypetext,xml,html,perl,shell,bash,python,vim,php,ruby color blackboardautocmd FileType xml,html vmap <C-o> <ESC>'<i<!--<ESC>o<ESC>'>o-->autocmd FileType java,c,cpp,cs color desertExautocmd FileType html,text,php,vim,c,java,xml,bash,shell,perl,python setlocal textwidth=100autocmd Filetype html,xml,xsl source ~/.vim/plugin/closetag.vim endif " has("autocmd")elsecolor desert"colorscheme zellner"对于html,xml文件,通过ctrl+_来closetagif has("autocmd")autocmd FileType xml,html vmap <C-o> <ESC>'<i<!--<ESC>o<ESC>'>o-->autocmd FileType html,text,php,vim,c,java,xml,bash,shell,perl,python setlocal textwidth=100autocmd Filetype html,xml,xsl source ~/.vim/plugin/closetag.vim endif " has("autocmd")endif " hasendif " exists(...)"这个是依赖终端的"set background=dark"显示行号set number"语法高亮度显示syntax on"检测文件的类型开启codesnipfiletype onfiletype plugin onfiletype indent onset completeopt=longest,menuset runtimepath+=~/.vim/textmateOnlyset runtimepath+=/home/hunch/.vim/afterso ~/.vim/plugin/supertab.vimlet g:SuperTabDefaultCompletionType="<C-X><C-O>""鼠标支持if has('mouse')set mouse=aendif"缩进相关" 继承前一行的缩进方式,特别适用于多行注释"set autoindent" 为C程序提供自动缩进"set smartindent" 使用C样式的缩进set cindentfunction! GnuIndent()setlocal cinoptions=>4,n-2,{2,^-2,:2,=2,g0,h2,p5,t0,+2,(0,u0,w1,m1 setlocal shiftwidth=2setlocal tabstop=8endfunctionau FileType c,cpp setlocal cinoptions=:0,g0,(0,w1 shiftwidth=4 tabstop=4 softtabstop=4au FileType diff setlocal shiftwidth=4 tabstop=4au FileType html setlocal autoindent indentexpr=au FileType changelog setlocal textwidth=76" Recognize standard C++ headersau BufEnter /usr/include/c++/* setf cppau BufEnter /usr/include/g++-3/* setf cpp" Setting for files following the GNU coding standardau BufEnter /usr/* call GnuIndent()function! RemoveTrailingSpace()if $VIM_HATE_SPACE_ERRORS != '0' &&\(&filetype == 'c' || &filetype == 'cpp' || &filetype == 'vim') normal m`silent! :%s/\s\+$//enormal ``endifendfunction" Remove trailing spaces for C/C++ and Vim filesau BufWritePre * call RemoveTrailingSpace()if &term=="xterm"set t_Co=8set t_Sb=^[[4%dmset t_Sf=^[[3%dmendif"set shiftwidth=2"set tabstop=4"set softtabstop=4"set expandtab" ambiwidth 默认值为 single。
在其值为 single 时," 若 encoding 为 utf-8,gvim 显示全角符号时就会" 出问题,会当作半角显示。
set ambiwidth=doubleset autoread " 自动重新加载外部修改内容set autochdir " 自动切换当前目录为当前文件所在的目录"No bell settings {{{set noerrorbellsset visualbellif has('autocmd')autocmd GUIEnter * set vb t_vb=endif"No bell settings End }}}"在编辑过程中,在右下角显示光标位置的状态行set ruler"set rulerformat=%20(%2*%<%f%=\ %m%r\ %3l\ %c\ %p%%%)" 启动的时候不显示那个援助索马里儿童的提示set shortmess=atIset nolinebreak " 在单词中间断行" 在状态栏显示目前所执行的指令,未完成的指令片段亦" 会显示出来set showcmdset wrap " 自动换行显示"CmdLine settings {{{set cmdheight=1 " 设定命令行的行数为 1set laststatus=2 " 显示状态栏 (默认值为 1, 无法显示状态栏) :set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [ASCII=\%03.3b]\ [HEX=\%02.2B]\ [POS=%04l,%04v][%p%%]\ [LEN=%L]"" 高亮字符,让其不受100列限制":highlight OverLength ctermbg=red ctermfg=white guibg=grey guifg=white ":match OverLength '\%101v.*'" 状态行颜色highlight StatusLine guifg=SlateBlue guibg=Yellow highlight StatusLineNC guifg=Gray guibg=White"显示匹配括号set showmatch"默认无备份set nobackupset nowritebackup"在insert模式下能用删除键进行删除set backspace=indent,eol,start"去掉讨厌的有关vi一致性模式,避免以前版本的一些bug和局限set nocp" 增强模式中的命令行自动完成操作set wildmenu"文字编码加入utf8" 设定默认解码set fenc=utf-8set fencs=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936 set enc=utf-8let &termencoding=&encoding" 使用英文菜单,工具条及消息提示set langmenu=none"自动缩排set ai"搜索不分大小写set ic"标识关键字set hls" 不要闪烁set novisualbell"设置语法折叠set foldmethod=syntaxset foldcolumn=3 "设置折叠区域的宽度set foldclose=all "设置为自动关闭折叠" 用空格键来开关折叠set foldenablennoremap <space> @=((foldclosed(line('.')) < 0) ? 'zc' : 'zo')<CR> "设置帮助语言if version >= 603set helplang=cnset encoding=utf-8endif"编辑状态保存au BufWinLeave * mkviewau BufWinEnter * silent loadview" Line highlight 設此標整行會標註顏色set cursorline" Column highlight 設此是遊標整列會標註顏色set cursorcolumn"highlight CursorLine cterm=none ctermbg=2 ctermfg=0"ctags设置set tags=/home/hunch/.vim/stltags"set tags+=/home/hunch/.vim/sgitag"set tags+=/home/hunch/.vim/ctags"set tags+=/home/hunch/.vim/glibctag"智能补全ctags -R --c++-kinds=+p --fields=+iaS --extra=+qlet OmniCpp_DefaultNamespaces = ["std"]let OmniCpp_GlobalScopeSearch = 1 " 0 or 1let OmniCpp_NamespaceSearch = 1 " 0 , 1 or 2let OmniCpp_DisplayMode = 1let OmniCpp_ShowScopeInAbbr = 0let OmniCpp_ShowPrototypeInAbbr = 1let OmniCpp_ShowAccess = 1let OmniCpp_MayCompleteDot = 1let OmniCpp_MayCompleteArrow = 1let OmniCpp_MayCompleteScope = 1highlight Pmenu ctermbg=13 guibg=LightGrayhighlight PmenuSel ctermbg=7 guibg=DarkBlue guifg=Whitehighlight PmenuSbar ctermbg=7 guibg=DarkGrayhighlight PmenuThumb guibg=Black"打开自己工程的时候自动加载的脚本if getfsize(".vimscript")>0source .vimscriptendif"rails.vimruntime! macros/matchit.vimaugroup myfiletypes" Clear old autocmds in groupautocmd!" autoindent with two spaces, always expand tabsautocmd FileType ruby,eruby,yaml set ai sw=2 sts=2 etaugroup END"autocmd FileType ruby,eruby set omnifunc=rubycomplete#Complete autocmd FileType ruby,eruby set omnifunc=rubycomplete#Complete"if you want buffer/rails/global completion you must add the following: autocmd FileType ruby,eruby let g:rubycomplete_buffer_loading = 1"if you want rails support add the following in additionautocmd FileType ruby,eruby let g:rubycomplete_rails = 1"if you want classes included in global completions add the following autocmd FileType ruby,eruby let g:rubycomplete_classes_in_global = 1"valgrind 相关let g:valgrind_arguments='--leak-check=yes --num-callers=5000'"字典完成:set dictionary-=/usr/share/dict/words dictionary+=/usr/share/dict/words"cscopeif has("cscope")set csprg=/usr/bin/cscopeset csto=0set nocstset nocsverb" add any database in current directoryif filereadable("cscope.out")cs add cscope.out" else add database pointed to by environmentelseif $CSCOPE_DB != ""cs add $CSCOPE_DBendifset csverbendifmap <C-_> :cstag <C-R>=expand("<cword>")<CR><CR>nmap <C-_>s :cs find s <C-R>=expand("<cword>")<CR><CR>nmap <C-_>g :cs find g <C-R>=expand("<cword>")<CR><CR>nmap <C-_>c :cs find c <C-R>=expand("<cword>")<CR><CR>nmap <C-_>t :cs find t <C-R>=expand("<cword>")<CR><CR>nmap <C-_>e :cs find e <C-R>=expand("<cword>")<CR><CR>nmap <C-_>f :cs find f <C-R>=expand("<cfile>")<CR><CR>nmap <C-_>i :cs find i ^<C-R>=expand("<cfile>")<CR>$<CR>nmap <C-_>d :cs find d <C-R>=expand("<cword>")<CR><CR>" Using 'CTRL-spacebar' then a search type makes the vim window " split horizontally, with search result displayed in" the new window.nmap <C-Space>s :scs find s <C-R>=expand("<cword>")<CR><CR>nmap <C-Space>g :scs find g <C-R>=expand("<cword>")<CR><CR>nmap <C-Space>c :scs find c <C-R>=expand("<cword>")<CR><CR>nmap <C-Space>t :scs find t <C-R>=expand("<cword>")<CR><CR>nmap <C-Space>e :scs find e <C-R>=expand("<cword>")<CR><CR>nmap <C-Space>f :scs find f <C-R>=expand("<cfile>")<CR><CR>nmap <C-Space>i :scs find i ^<C-R>=expand("<cfile>")<CR>$<CR>nmap <C-Space>d :scs find d <C-R>=expand("<cword>")<CR><CR>" Hitting CTRL-space *twice* before the search type does a vertical " split instead of a horizontal onenmap <C-Space><C-Space>s\:vert scs find s <C-R>=expand("<cword>")<CR><CR>nmap <C-Space><C-Space>g\:vert scs find g <C-R>=expand("<cword>")<CR><CR>nmap <C-Space><C-Space>c\:vert scs find c <C-R>=expand("<cword>")<CR><CR>nmap <C-Space><C-Space>t\:vert scs find t <C-R>=expand("<cword>")<CR><CR>nmap <C-Space><C-Space>e\:vert scs find e <C-R>=expand("<cword>")<CR><CR>nmap <C-Space><C-Space>i\:vert scs find i ^<C-R>=expand("<cfile>")<CR>$<CR>nmap <C-Space><C-Space>d\:vert scs find d <C-R>=expand("<cword>")<CR><CR>"runtime ftplugin/man.vimlet Vimplate = "$HOME/bin/vimplate"fun! ReadMan()" Assign current word under cursor to a script variable:let s:man_word = expand('<cword>')" Open a new window::exe ":wincmd n"" Read in the manpage for man_word (col -b is for formatting)::exe ":r!man " . s:man_word . " | col -b"" Goto first line...:exe ":goto"" and delete it::exe ":delete"endfun""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Autocommands """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" "加上日期对应F2:map <F2> gg:read !date<CR>" bind :CD to :cd %:h, then change cwd to the dir that includes current filesil! com -nargs=0 CD exe 'cd %:h'" F5编译和运行C程序,F6编译和运行C++程序" 请注意,下述代码在windows下使用会报错" 需要去掉./这两个字符" C的编译和运行map <F5> :call CompileRunGcc()<CR>func! CompileRunGcc()exec "w"exec "!gcc -Wall -g % -o %<"exec "! ./%<"endfunc" C++的编译和运行map <F6> :call CompileRunGpp()<CR>func! CompileRunGpp()exec "w"exec "!g++ -Wall -g % -o %<"exec "! ./%<"endfunc" 能够漂亮地显示.NFO文件set encoding=utf-8function! SetFileEncodings(encodings)let b:myfileencodingsbak=&fileencodingslet &fileencodings=a:encodingsendfunctionfunction! RestoreFileEncodings()let &fileencodings=b:myfileencodingsbakunlet b:myfileencodingsbakendfunctionau BufReadPre *.nfo call SetFileEncodings('cp437')|set ambiwidth=single au BufReadPost *.nfo call RestoreFileEncodings()" 高亮显示普通txt文件(需要txt.vim脚本)"au BufRead,BufNewFile * setfiletype txt" Map the M key to the ReadMan function:map M :call ReadMan()<CR>"csupportlet g:alternateNoDefaultAlternate = 1"a.vimnnoremap <silent> <F12> :A<CR>nmap wm :WMToggle<cr>" 双反斜杠\\即可打开bufexplorermap <leader><leader> \be" Ctrl+Enter也可以切换buffermap C-Enter C-Tabnnoremap <silent> <F4> :tabprevious<CR>:set cscopequickfix=s-,c-,d-,i-,t-,e-nnoremap <silent> <F3> :Grep<CR>":inoremap ( ()<ESC>i":inoremap ) <c-r>=ClosePair(')')<CR>":inoremap { {}<ESC>i":inoremap } <c-r>=ClosePair('}')<CR>":inoremap [ []<ESC>i":inoremap ] <c-r>=ClosePair(']')<CR>":inoremap < <><ESC>i":inoremap > <c-r>=ClosePair('>')<CR>function ClosePair(char)if getline('.')[col('.') - 1] == a:charreturn "\<Right>"elsereturn a:charendifendf" mapping" 如果下拉菜单弹出,回车映射为接受当前所选项目,否则,仍映射为回车;"" 如果下拉菜单弹出,CTRL-J映射为在下拉菜单中向下翻页。