Vim-详细配置
- 格式:docx
- 大小:187.08 KB
- 文档页数:28
vim编辑器及环境变量配置vi是Linux系统⾃带的⽂本编辑器,vim编辑器可以⾼亮显⽰vim编辑器的⽤法普通模式,编辑模式,命令模式1. vim ⽂件名# 此时进⼊命令模式,你敲击键盘的动作都会被识别是⼀个vim的命令进⼊编辑模式命令i 在当前光标所在处插⼊⽂字I 在当前所在⾏的⾏⾸第⼀个⾮空格符处开始插⼊⽂字,和A相反A 在当前所在⾏的⾏尾最后⼀个字符处开始插⼊⽂字,和I相反O 在当前所在⾏的上⼀⾏处插⼊新的⼀⾏o 在当前所在⾏的下⼀⾏处插⼊新的⼀⾏2.但凡进⼊插⼊模式之后,敲击键盘的动作就会被识别为是普通的字符串了3.按下esc退出编辑模式之后,⼜进⼊命令模式了4.输⼊ :wq! 保存vim的写⼊内容,然后退出vim,结束操作在普通模式下,常⽤的指令$ 快速移动到⾏尾0 快速移动到光标的⾏⾸x 删除光标所在的字符gg 移动到⽂件的第⼀⾏G 移动到⽂件的最后⼀⾏5gg或5回车当前光标向下移动5⾏yy 复制光标当前⾏3yy 复制光标后3⾏p 打印yy所复制的内容dd 删除光标所在⾏4dd 删除光标向下的4⾏内容dG 删除光标当前⾏,到⾏尾的所有内容u 就是撤销上⼀次的动作命令模式下/string 从⽂件开头搜索,按n继续搜索,按N反向搜索string 从⽂件的第⾏,向上搜索字符串信息,按n继续搜索,按N反向搜索:%s/A/B/g,把A替换成B,如果A或B中有斜线,把分割的斜线换#或@s为替换,g全局替换:n1,n2s/A/B/g n1、n2为数字,在第n1⾏和n2⾏间寻找A,⽤B替换例⼦:全局替换,整个⽂件替换将nologin替换为boy:%s/nologin/boy/g例2:替换1-5⾏,将boy替换为nologin1,5s/boy/nologin/g#///为分隔符,可以⽤### @@@替代:wq!:q! 不保存退出:数字快速的定位到某⼀⾏:set nu 显⽰vim的⾏号:set nonu 取消显⽰⾏号修改linux的全局配置⽂件1.名字叫做 /etc/profile,⾥⾯是shell脚本语⾔2.编辑这个⽂件,写⼊你想永久⽣效的变量和值,系统每次开机都会读取这个⽂件,让其⽣效vim /etc/profile写⼊如下内容###这是⾃定义的变量,每次开机都能够读取了,第⼀条是设置系统中⽂的变量export LC_ALL=zh_CN.UTF-8 #打开注释,系统⽀持中⽂#export LC_ALL=en_US.UTF-8 #打开注释,系统就⽀持英⽂了linux单引号和双引号的区别单引号中的内容,仅仅就是个字符串了,不识别任何其他的特殊符号双引号中的内容,能够识别特殊符号,以及变量[root@linux ~]# echo '$name'$name[root@linux ~]# echo "$name"wmmPATH变量PATH就是定义⼀些常⽤的软件可执⾏命令的⽬录,放⼊系统中,可以快捷的查询,⽽不需要每次都输⼊绝对路径1.为什么系统能够直接找到python解释器?[root@linux tmp]# which python #输出命令所在的绝对路径/bin/python2.学习linux的PATH,[root@linux tmp]# echo $PATH/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin注意,PATH的路径,是有先后顺序的,从左往右,读取的3.如果编译安装了⼀个python3,装在了 /opt/python36/⽬录下,怎么添加PATH?#这个变量赋值的代码,就是添加python3到环境变量中了PATH="/opt/python36/bin/:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:"4.由于上述变量赋值的操作,只是临时⽣效,我们想永久的更改PATH的值,还得修改/etc/profilevim /etc/profile #打开⽂件,在⽂件末尾,添加PATH值的修改PATH="/opt/python36/bin/:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:"。
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"置粘贴模式,这样粘贴过来的程序代码就不会错位了。
如何使用Vim进行代码编辑引言:Vim是一款高度可定制的文本编辑器,广泛用于程序员和系统管理员之间的代码编辑和文本处理任务。
它具有强大的功能和灵活的操作方式,可以大大提高编码效率。
本文将介绍如何在Vim 中进行代码编辑,并列举一些常用的技巧和快捷方式,帮助读者更好地使用Vim编辑器。
第一章:Vim基础1.1 安装和启动Vim- 下载和安装Vim的最新版本;- 运行终端,并输入“vim”命令启动Vim编辑器;- 进入Vim的命令模式并开始编辑代码。
1.2 Vim的基本模式- 命令模式:用于执行各种编辑命令;- 插入模式:用于实际编辑文本;- 可视模式:用于选择和操作文本块。
第二章:Vim编辑技巧2.1 移动光标的快捷方式- 使用h、j、k、l键分别向左、向下、向上、向右移动光标;- 使用gg和G快速在文件的开头和结尾之间切换;- 使用Ctrl+f和Ctrl+b在文本之间快速滚动。
2.2 文本编辑和修改- 使用i和a命令进入插入模式,用于在当前光标处开始编辑;- 使用o和O命令在当前行之后或之前插入新行并进入插入模式;- 使用d和p命令删除和粘贴文本。
2.3 撤销和重做操作- 使用u和Ctrl+r命令撤销和重做上一次操作;- 使用U快速撤销对整行的修改;- 使用.命令重复上一次的修改操作。
第三章:Vim的高级功能3.1 多文件编辑- 使用:sp和:vsp命令在同一个窗口中同时打开多个文件;- 使用Ctrl+w+h、Ctrl+w+j、Ctrl+w+k和Ctrl+w+l快捷方式在不同窗口之间切换;- 使用:bn和:bp命令在不同的缓冲区之间切换。
3.2 快速搜索和替换- 使用/和?命令分别进行向前和向后的快速搜索;- 使用:%s/old/new/g命令进行全局搜索和替换;- 使用:n和:N命令在不同的匹配项之间跳转。
3.3 定制Vim编辑器- 创建.vimrc文件并添加个人配置选项;- 定制快捷键和颜色方案;- 下载和安装插件以增强Vim的功能。
vim配置(vimplus)教程及问题An automatic configuration program for vim安装(github地址:, 欢迎star和fork)Mac OS X安装/usr/bin/ruby -e "$(curl -fsSL https:///Homebrew/install/master/install)"安装vimplus1 git clone https:///chxuan/vimplus.git ~/.vimplus2 cd ~/.vimplus3 ./install.shUbuntu版本要求ubuntu14.04及其以上64位系统。
安装vimplus(建议在普通⽤户下安装)1 git clone https:///chxuan/vimplus.git ~/.vimplus2 cd ~/.vimplus3 ./install.shCentos版本要求centos7及其以上64位系统。
安装vimplus(建议在普通⽤户下安装)1 git clone https:///chxuan/vimplus.git ~/.vimplus2 cd ~/.vimplus3 ./install.shArchLinux安装vimplus1 git clone https:///chxuan/vimplus.git ~/.vimplus2 cd ~/.vimplus3 ./install.sh个性化修改~/.vimrc.local⽂件内容,以启⽤个性化定制,可覆盖~/.vimrc中的设置。
插件列表插件说明cpp-mode提供⽣成函数实现、函数声明/实现跳转、.h .cpp切换等功能(I'm author )vim-edit⽅便的⽂本编辑插件(I'm author )change-colorscheme随⼼所欲切换主题(I'm author )prepare-code新建⽂件时,⽣成预定义代码⽚段(I'm author )vim-buffer vim缓存操作(I'm author )vimplus-startify vimplus开始页⾯(修改⾃mhinz/vim-startify)tagbar使⽤majutsushi/tagbar的v2.3版本,taglist的替代品,显⽰类/⽅法/变量vim-plug⽐Vundle下载更快的插件管理软件YouCompleteMe史上最强⼤的基于语义的⾃动补全插件,⽀持C/C++、C#、Python、PHP等语⾔NerdTree代码资源管理器vim-nerdtree-syntax-highlight NerdTree⽂件类型⾼亮nerdtree-git-plugin NerdTree显⽰git状态vim-devicons显⽰⽂件类型图标Airline可以取代powerline的状态栏美化插件auto-pairs⾃动补全引号、圆括号、花括号等LeaderF⽐ctrlp更强⼤的⽂件的模糊搜索⼯具ack强⼤的⽂本搜索⼯具vim-surround⾃动增加、替换配对符的插件vim-commentary快速注释代码插件vim-repeat重复上⼀次操作vim-endwise if/end/endif/endfunction补全tabular代码、注释、表格对齐vim-easymotion强⼤的光标快速移动⼯具,强⼤到颠覆你的插件观incsearch.vim模糊字符搜索插件markdown-preview markdown实时预览vim-fugitive集成Gitgv显⽰git提交记录vim-slash优化搜索,移动光标后清除⾼亮echodoc补全函数时在命令栏显⽰函数签名vim-smooth-scroll让翻页更顺畅clever-f.vim强化f和F键github-complete.vim Emoji 补全vimcdoc vim中⽂⽂档快捷键以下是部分快捷键,更详细的快捷键请查阅vimplus帮助⽂档。
Linux基本命令vim命令(⼀)vim的三种⼯作模式命令模式、输⼊模式和编辑模式的相互转换,如图命令模式:使⽤ Vim 编辑⽂件时,默认处于命令模式。
在此模式下,可以使⽤上、下、左、右键或者 k、j、h、l 命令进⾏光标移动,还可以对⽂件内容进⾏复制、粘贴、替换、删除等操作。
输⼊模式:在输⼊模式下可以对⽂件执⾏写操作。
进⼊输⼊模式的⽅法是输⼊ i、a、o 等插⼊命令,编写完成后按 Esc 键即可返回命令模式。
编辑模式:如果要保存、查找或者替换⼀些内容等,就需要进⼊编辑模式。
编辑模式的进⼊⽅法为:在命令模式下按" :"键,Vim 窗⼝的左下⽅会出现⼀个" :"符号后,这时就可以输⼊相关的指令进⾏操作了。
操作完按Enter键执⾏,指令执⾏后会⾃动返回命令模式。
使⽤Vim打开⽂件为了避免误操作我们将/etc下的profile复制到/tmp下进⾏操作,命令如下:[root@localhost /]# cp /etc/profile /tmp/profile.vim使⽤vim 进⼊profile⽂件的命令模式操作功能描述vim profile.vim只是打开⽂件打开⽂件后,直接定位指定⾏数处,vim +20 /tmp/profile.vim例如,打开 /tmp/profile.vim⽂件时直接进⼊第 20 ⾏打开⽂件后,直接定位指定⾏数处,vim +/future /tmp/profile.vim例如,打开 /tmp/profile.vim⽂件时直接定位到"future"字符串所在⾏打开⽂件后,接下来开始对⽂件进⾏操作。
进⼊输⼊命令模式从命令模式进⼊输⼊模式可以按下 I、i、A、a 、O、o、等键来完成,不同的键只是光标所处的位置不同⽽已。
当进⼊输⼊模式后,在 Vim 编辑窗⼝的左下⾓会出现"INSERT"标志,这就代表我们可⾏写⼊操作了,在vim中光标是停留在字符上的,例如在光标后⾯插⼊就是指在光标所在的字符的后⾯插⼊;操功能描述作i在当前光标所在位置插⼊输⼊的⽂本,光标后的⽂本相应向右移动I在光标所在⾏的⾏⾸插⼊输⼊的⽂本,⾏⾸是该⾏的第⼀个⾮空⽩字符,相当于光标移动到⾏⾸执⾏ i 命令a在当前光标所在位置之后插⼊输⼊的⽂本A在光标所在⾏的⾏尾插⼊输⼊的⽂本,相当于光标移动到⾏尾再执⾏ a 命令o在光标所在⾏的下⾯插⼊新的⼀⾏。
∙如果该文件存在,文件被打开并显示内容∙如果该文件不存在,当编辑后第一次存盘时创建它∙如果目录不存在,将无法保存编辑内容2. vim的三种模式vim是一款模式编辑器,对vim的操作进行在vim的三种模式之上。
所谓三种模式分别是:1.命令(Normal)模式,默认模式,主要作用是移动光标,剪切/粘贴文本。
2.插入(Insert)或编辑模式,主要作用是修改文本。
3.扩展命令(extended command )模式,主要作用是保存,退出等。
所以想要娴熟操作vim,在三种模式之间的切换是必不可少的。
vim的模式切换是以命令模式为基础的,也就是打开文件时的第一个界面,vim打开文件默认是在命令模式界面。
所以无论你是要进入扩展模式还是插入模式,都需要在命令模式进行切换,扩展模式和插入模式之间是不能直接切换的。
vim三种主要模式之间的切换:3.命令模式1.命令模式进入插入模式2.命令模式光标间跳转2.1字符间跳转:2.2单词间跳转:2.3当前页跳转:2.4行首行尾跳转:2.5行间移动:2.6句间移动2.7 段落间移动:3.命令模式翻屏操作4.命令模式编辑操作4.1字符编辑:4.2替换命令(r, replace)4.3删除命令(d,delete)4.4复制命令(y, yank):4.5粘贴命令(p, paste):4.6改变命令(c, change)4.7撤销更改4.2扩展命令模式:地址定界在扩展命令模式下进行地址定界方法一:利用行数进行定界格式|:开始#,结束#4.3扩展命令模式:查找查找命令:4.4扩展命令模式:查找并替换扩展命令模式下,在命令提示符后面输入字母―s‖,然后按格式输入要查找和替换的内容,便可进行查找替换。
格式:s/要查找的内容/替换为的内容/修饰符格式项作用要查找的内容分割符后输入要查找的内容,可使用模式,也就是正则表达式。
替换为的内容不能使用模式,但可以使用\1, \2, …等后向引用符号;还可以使用―&‖引用前面查找时查找到的整个内容修饰符:i 忽略大小写g 全局替换;默认情况下,每一行只替换第一次出现gc 全局替换,每次替换前询问如果查找和替换的内容中包含路径,再使用"/"作为分割符就不方便了,这时可以使用@、#等特殊符号来做分割符。
vim编辑器的使⽤这⾥主要介绍vim编辑器的⼀些常⽤命令和⽅法,主要包括: vim编辑器的基本使⽤,包括vi的启动与退出、⼯作模式的切换、光标的移动、屏幕的滚动、⽂本的插⼊与删除、复制与粘帖、查找与替换等。
vim编辑器之程序编辑,包括程序设计中光标的跳转、关键字的补全,以及代码的缩进等。
希望通过本节的学习,能够基本掌握vi编辑器的使⽤⽅法和相关技巧,能够独⽴完成程序源代码的编辑和修改。
1、 vim编辑器的基本使⽤ vim编辑器是Linux系统下的标准编辑器。
虽然命令繁多复杂,并且绝⼤多数功能的输⼊都依靠键盘来完成,但如果我们熟悉掌握之后就会发现vim编辑器的功能、效率等都是其他图形界⾯编辑器⽆法⽐拟的,下⾯让我们来揭开它的神秘⾯纱。
1.1、 vim的启动 在终端输⼊命令vim,后⾯接着输⼊想要创建或编辑的⽂件名,即可进⼊vim编辑器。
$ vim test.c 如果vi命令后⾯所输⼊的⽂件不存在,则系统会⾃动创建⼀个以该字符串命名的⽂本⽂件。
如上图,光标停留在左上⽅,由于新建⽂件中没有任何内容,所以每⼀⾏的开头都为波浪线。
窗⼝的底部为状态栏,显⽰当前编辑⽂件的相关信息。
打开⽂件后,光标停留在屏幕左上⽅。
状态栏显⽰了当前编辑⽂件的⽂件名、⾏数以及字符数等信息。
vi命令打开⽂件时还可以带参数,这些参数⽤于修正vi的打开⽅式,主要包括如下:-R :以只读⽅式打开⽂件。
如果只需阅读⽂件内容⽽不想对其进⾏修改时,可以使⽤这个参数,以防对⽂件的误操作,-x:该参数可以在保存⽂件时对其进⾏加密,以后每次打开都需要输⼊密钥,否则将出现乱码。
1.2 、vim的⼯作模式 vim有3种⼯作模式:普通模式、编辑模式和命令模式,这3种模式之间可以相互切换。
(1)、普通模式 由Shell进⼊vim编辑器时,⾸先进⼊普通模式。
在普通模式下,从键盘输⼊任何字符都被当作命令来解释。
普通模式下没有任何提⽰符,当输⼊命令时⽴即执⾏,不需要回车,⽽且输⼊的字符不会在屏幕上显⽰出来。
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⽂件)。
ViVim基本⽤法Vi/Vim是Linux中⼀款功能强⼤的编辑器,vi是Visual Interface的缩写,即可视化接⼝,vim是vi iMprove的缩写,即 vi的增强版(具有语法着⾊功能)。
它在Linux上的地位就仿佛Edit程序在DOS上⼀样。
它可以执⾏输出、删除、查找、替换、块操作等众多⽂本操作,⽽且⽤户可以根据⾃⼰的需要对其进⾏定制。
Vi不是⼀个排版程序,它不像Word或WPS那样可以对字体、格式、段落等其他属性进⾏编排,它只是⼀个⽂本编辑程序。
vi没有菜单,只有命令,且命令繁多。
1.Vim配置⽂件全局vim配置⽂件:/etc/vimrc个⼈vim配置⽂件:~/.vimrc当我们需要设置Vim的部分功能时,我们可以通过修改配置⽂件来实现!例如:永久添加⾏号--------->在配置⽂件中加上set nu2.Vim三级模式及相互切换 三种模式 命令模式(默认):刚进⼊vim的时候,默认就是命令模式,可以复制⾏,删除⾏等。
输⼊模式:可以输⼊内容。
末⾏模式:在最下边,除编辑模式,可以输⼊诸多管理员命令命令⾏模式 任何时候,不管⽤户处于何种模式,只要按⼀下ESC键,即可使Vi进⼊命令模式;我们在shell环境(提⽰符为$)下输⼊启动Vi命令,进⼊编辑器时,也是处于该模式下。
在该模式下,⽤户可以输⼊各种合法的Vi命令,⽤于管理⾃⼰的⽂档。
此时从键盘上输⼊的任何字符都被当做编辑命令来解释,若输⼊的字符是合法的Vi命令,则Vi在接受⽤户命令之后完成相应的动作。
但需注意的是,所输⼊的命令并不在屏幕上显⽰出来。
若输⼊的字符不是Vi的合法命令,Vi会响铃报警。
⽂本输⼊模式 在命令模式下输⼊插⼊命令i、附加命令a 、打开命令o、修改命令c、取代命令r或替换命令s都可以进⼊⽂本输⼊模式。
在该模式下,⽤户输⼊的任何字符都被Vi当做⽂件内容保存起来,并将其显⽰在屏幕上。
在⽂本输⼊过程中,若想回到命令模式下,按键ESC即可。
Vim安装vim比vi的功能强大,但ubuntu里面只有vi和vim.tiny,所以要自己安装。
一、在命令行输入vi再按tab,可以看到:二、键入命令:sudo apt-get install vim-gtk,然后输入y,就可以自己下载安装vim了。
Tip:前提是保证虚拟机能连接到网络,否则会出现E: Unable to fetch some archives, maybe run apt-get update or try with –fix-missing?的错误A、共享主机无线网络的方法:1、在主机上运行cmd,输入命令services.msc,找到VMvare Nat Service和VMvare DHCP Service右击开启。
2、右击虚拟机右下部的netwoark adapters点击settings,出现如下窗口,选择NAT:使其共享主机IP (注意:每一次需要网络连接的时候都要手动打开上述两个服务器。
)连接到网络后重复步骤二,完成后键入命令vim,显示如下则vim安装成功。
三、安装好vim,就可以开始配置了,使用命令sudoapt-get install vim-script vim-doc,下载文档和插件。
下载过程中如果还出现如下错误,解决办法:清除catche里的缓存使用命令sudo rm/var/catche/apt/archieves/partial/*,在使用命令sudo apt-get clean四、在/home/usr(你的用户名,我的是hagog)下,使用命令gedit .vimrc,在新建的文件下输入配置信息,那你的vim就有高亮,缩进,显示行号的功能" This line should not be removed as it ensures that various options are" properly set to work with the Vim-related packages available in Debian.debian.vim" Uncomment the next line to make Vim more Vi-compatible" NOTE: debian.vim sets 'nocompatible'. Setting 'compatible' changesnumerous" options, so any other options should be set AFTER setting 'compatible'.set nocompatible" Vim5 and later versions support syntax highlighting. Uncommenting the " following enables syntax highlighting by default.if has("syntax")syntax on " 语法高亮endifcolorscheme ron " elflord ron peachpuff default 设置配色方案,vim自带的配色方案保存在/usr/share/vim/vim72/colors目录下" detect file typefiletype onfiletype plugin on" If using a dark background within the editing area and syntax highlighting" turn on this option as wellset background=dark" Uncomment the following to have Vim jump to the last position when" reopening a fileif has("autocmd")au BufReadPost *if line("'\"") > 1 &&line("'\"")<= line("$")| exe "normal! g'\"" | endif"have Vim load indentation rules and plugins according to the detected filetypefiletype plugin indent onendif" The following are commented out as they cause vim to behave a lot " differently from regular Vi. They are highly recommended though."set ignorecase "搜索模式里忽略大小写"set smartcase "如果搜索模式包含大写字符,不使用'ignorecase'选项。
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颜⾊的问题,上⽹找了若⼲篇⽂章才搞定,⾃⼰⼩结⼀下。
gvim配置⽂件vimrc配置source $VIMRUNTIME/vimrc_example.vimsource $VIMRUNTIME/mswin.vimbehave mswin"设置⽂件的代码形式 utf8set encoding=utf-8set termencoding=utf-8set fileencoding=utf-8set fileencodings=ucs-bom,utf-8,chinese,cp936"vim的菜单乱码解决source $VIMRUNTIME/delmenu.vimsource $VIMRUNTIME/menu.vim"vim提⽰信息乱码的解决language messages zh_CN.utf-8filetype onfiletype plugin indent oncolorscheme desert "配⾊⽅案set helplang=cn "设置中⽂帮助set history=500"保留历史记录set guifont=Microsoft\ Yahei\ Mono:h12 "设置字体为Monaco,⼤⼩10set tabstop=4"设置tab的跳数set expandtabset backspace=2"设置退格键可⽤set nu! "设置显⽰⾏号"set wrap "设置⾃动换⾏"set nowrap "设置不⾃动换⾏"set linebreak "整词换⾏,与⾃动换⾏搭配使⽤"set list "显⽰制表符set autochdir "⾃动设置当前⽬录为正在编辑的⽬录"set hidden "⾃动隐藏没有保存的缓冲区,切换buffer时不给出保存当前buffer的提⽰set scrolloff=5"在光标接近底端或顶端时,⾃动下滚或上滚"Toggle Menu and Toolbar "隐藏菜单栏和⼯具栏"set guioptions-=m"set guioptions-=Tset showtabline=2"设置显是显⽰标签栏set autoread "设置当⽂件在外部被修改,⾃动更新该⽂件set mouse=a "设置在任何模式下⿏标都可⽤set nobackup "设置不⽣成备份⽂件set noundofileset noswapfile"==========================="查找/替换相关的设置"===========================set hlsearch "⾼亮显⽰查找结果set incsearch "增量查找"==========================="状态栏的设置"==========================="set statusline=[%F]%y%r%m%*%=[Line:%l/%L,Column:%c][%p%%] "显⽰⽂件名:总⾏数,总的字符数set ruler "在编辑过程中,在右下⾓显⽰光标位置的状态⾏"==========================="代码设置"===========================syntax enable "打开语法⾼亮syntax on "打开语法⾼亮set showmatch "设置匹配模式,相当于括号匹配set smartindent "智能对齐"set shiftwidth=4 "换⾏时,交错使⽤4个空格set autoindent "设置⾃动对齐set ai! "设置⾃动缩进"set cursorcolumn "启⽤光标列set cursorline "启⽤光标⾏"set guicursor+=a:blinkon0 "设置光标不闪烁set fdm=indent "注册表配置,编写vim.reg⽂件Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\Applications\gvim.exe][HKEY_CLASSES_ROOT\Applications\gvim.exe\shell]@=""[HKEY_CLASSES_ROOT\Applications\gvim.exe\shell\edit]@=""[HKEY_CLASSES_ROOT\Applications\gvim.exe\shell\edit\command]@="\"C:\\Program Files (x86)\\Vim\\vim81\\gvim.exe\" -p --remote-tab-silent \"%1\"" [HKEY_CLASSES_ROOT\Applications\gvim.exe\shell\open][HKEY_CLASSES_ROOT\Applications\gvim.exe\shell\open\command]@="\"C:\\Program Files (x86)\\Vim\\vim81\\gvim.exe\" -p --remote-tab-silent \"%1\""。
VIM 编辑器VIM 和Emacs 是Linux 上最知名和最受程序员喜爱的两种编辑器。
VI追求的是快捷启动程序迅速,编辑文本高效,功能专注,而Emacs追求的是功能的丰富强大以及集成带来的方便,在Emacs里头可以发邮件,上新闻组,听mp3,浏览网页,玩游戏,几乎可以login->emacs—〉logout了,VI和Emacs都是程序员的编辑器,相比而言,Emacs更是提供了一种程序员的生活氛围。
VIM引入了很多模式,主要的有如下几种:➢Normal mode 即通常所谓的命令模式,在此模式使用a、i、A、I、o、O等进入Insert mode➢Insert mode 即通常所谓的编辑模式,在此模式使用ESC进入Normal mode或者Ctrl-c临时进入Normal mode➢Command—line mode 命令行模式,在Normal mode下按冒号进入,按ESC取消执行命令或者回车执行命令,然后回到Normal mode。
➢Visual mode 即选择模式(注意跟用鼠标选择不同),用v,V,C-v或C-q进入➢Select mode 鼠标选择➢Replace mode 在Normal mode下按R进入,按ESC返回Normal mode,相当于Windows下命令行中按Insert键进入的覆盖模式1. 基本操作1) 移动光标(Normal mode)可以用下面的键来移动光标H (左), j (下),k (上),l (右)2) 删除(Normal mode)当你想删除一个字符时,把光标移动到它上面,然后按下x键,它就会消失。
dd命令会删除当前所在的一行内容。
dw 删除当前光标所在字符d$删除从当前光标所在位置到当前行结尾的所有内容d^ 删除从当前光标所在位置到行首的所有内容3) 合并行(Normal mode)使用J命令可以合并当前行和下一行4) 撤消和重做(Normal mode)按下u会撤消上一步的操作,U(大字)是一个特殊的撤消键,它会撤消在在最后编辑的行上所作的所有操作.如果撤消的次数过多,按下Ctrl+r 会重做上次撤消的操作5) 复制和粘贴(Normal mode)yy 复制游标所在行整行。
Vim的编码详解和中文环境设置很惭愧,作为vim的忠实用户,自从2年多前从help里知道了:edit++enc=xxx这个命令之后,我就没有去了解过vim的编码设定了。
这些年来,我遇到编码出错,总是:edit++enc=xxx。
今天:help了一下encoding等,终于搞清楚了相关的各个变量的作用和关系。
简单的说,有三个设置。
(我下面基本以中文环境来作为说明)1) 在.vimrc或者_vimrc里加入setfileencodings=utf-8,gb2312,gbk,gb18030,big5这句就基本OK了。
vim会依次使用这些编码对文件进行编码的猜测。
2) 如果还是不行,那么在打开文件之后,用:edit++enc=gbk这个命令强制使用某个编码。
3) 如果依然不行,请检查你的$LANG环境变量。
下面是详细的说明。
vim编码主要涉及三个变量。
encodingvim的内部编码,包括内存数据的编码,vim配置文件的编码。
encoding取自变量$LANG,如果$LANG为空,则取latin1。
这个编码应该和你的终端编码保持一致的。
fileencoding文件的编码。
vim在加载文件的时候,会把这个编码转换成encoding参数的编码。
同样的,保存文件的时候,内存的编码会由encoding转变为fileencoding。
需要注意的是,在vimrc里设置这个参数,不会起作用。
因为打开一个文件的时候,fileencodings或者encoding会覆盖fileencoding。
关于这个,可以看下面提到的打开文件流程。
fileencodings=utf-8,gbk,gb2312vim在加载一个文件的时候,会依次尝试使用fileencodings里的编码作为fileencoding。
如果全部失败,那么vim会使用encoding作为fileencoding。
另外,如果vim使用了错误的编码,可以使用edit++enc=gbk这个命令。
Linux_vim编辑器使⽤总结⼀、vi编辑器 vim是linux下的⼀个纯⽂本编辑器,是vi编辑器的增强版。
它相较于vi⽽⾔,有⽂本字体颜⾊显⽰等特点,有助于对⽂本编辑。
vim使⽤⼩技巧:直接输⼊vi命令后,使⽤的是vim编辑器 解决思路:使⽤“alias”别名 设置⽅法1: 使⽤命令如下:alias vi=’vim’(临时有效) 设置⽅法2:将 alias vi=’vim’ 命令放⼊环境变量配置⽂件(~/.bashrc)中永久有效 Step1:vi ~/.bashrc Step2:在⽂件中添加 alias vi=’vim’ 命令 Step3:source ~/.bashrc(⽴即加载修改后的设置,才能使之⽣效)⼆、vim基本使⽤1、vim的⼯作模式:⼀般模式、编辑模式、命令⾏模式2、三种模式的简要说明 ⼀般模式:主要使⽤快捷键的模式,如可以上下左右按键移动光标、删除字符或删除整⾏、复制、粘贴等操作; 使⽤vim打开⽂件即可进⼊⼀般模式。
编辑模式:主要⽤于⽂本编辑,和记事本类似,⽤于⽂本输⼊。
从⼀般模式进⼊编辑模式:a、A、i、I、o、O 从编辑模式退出,进⼊⼀般模式:按“Esc”键即可 命令⾏模式:可以将光标移动到最底下那⼀⾏,可以进⾏⽂件内搜索、读取、存盘、⼤量取代字符、退出vim编辑器、显⽰⾏号等。
进⼊命令⾏后,输⼊命令后按回车键运⾏并结束命令进⼊⼀般模式;或按“Esc”键退出命令⾏模式。
从⼀般模式进⼊命令⾏模式:“:”、“/”、“?”3、⼀般模式下的操作3.1、移动光标的⽅法 1)、上下左右移动光标: 使⽤技巧: 若想要进⾏多次移动,可以使⽤“数字+hjkl”的⽅式操作,如: 向下移动30⾏,可以使⽤“30j”的组合按键,即加上想要进⾏的次数(数字)后,按下动作即可。
2)、光标移动到⽂件头或尾 使⽤技巧:使⽤“nG”,可移动到⽂件的第n⾏(n表⽰数字) 3)、移动到⾏⾸或⾏尾 说明:“^”键在英⽂输⼊下按“shift+6”;“$”键在英⽂输⼊下按“shift+4” 4)、移动到指定⾏ 说明:n表⽰数字3.2、删除、剪切、粘贴 1)、删除、剪切 补充说明:dd快捷键既是删除,也是剪切。
linuxvim编辑器的用法linuxvim编辑器是Linux系统中常用的文本编辑器,它可以在纯文本环境下完成文本文件的编辑、创建等功能。
本文主要介绍使用linux vim编辑器时应遵循的操作要求。
要想使用vim进行文件编辑,首先要将其安装到Linux系统中。
在终端中输入以下命令即可完成安装:sudo apt-get install vim安装完成后,可以在终端中输入vim -version检查一下版本号,默认安装的是Vim 7.2版本。
二、 vim编辑器基本命令1、打开文件:在终端中输入:vim file.txt即可打开指定的文件;2、缩进:可以使用键盘上数字键上的<和>来完成缩进操作;3、查找:可以输入 /string 可以查找指定文本,输入n可以跳转到下一个指定文本处;4、换行:要将光标移动到一行的结尾处,可以使用键盘上的$符号;5、替换:替换命令为::s/old/new/g,其中old是原有的字符串,new是新的字符串;6、保存:使用快捷键 :w即可将当前文件保存;1、^:代表当前行的开始位置;4、*:表示上一次操作的文本;5、%:表示所有内容(以文件头到文件尾);6、#:表示上一条搜索的字符串;7、@:表示上一次的替换内容;8、[和]:表示上一次的复制状态;9、[:表示左端搜索;1、复制粘贴:选择你要复制的文本,使用shift+V粘贴到要复制的位置,可以复制多行文本;2、跳转行:在终端中输入:<num>:<action>,可以将光标跳转到第num行,之后可以执行自定义的操作;3、跳转列:输入c$可以将光标跳转到行尾,输入0可以将光标跳转到行首;4、删除:输入dd可以删除当前行文本,输入x可以删除光标下的一个字符;6、跳转标签:可以使用将指定标签用大写字母T来指向,如:CT可以跳转到标签处。
以上就是用linux vim编辑器时应遵循的操作步骤以及常用功能。
Vim 或Gvim 详细配置配置一览:1、括号自动匹配[ 支持所有的括号类型以及引号等]2、一键添加语法模板、作者、时间等信息3、单源文件一键编译、运行[ 已配置支持所有主流编程语言]4 、代码补全、函数跳转[ 由ctags 实现]5 、语法结构智能补全[ 由snipMate 实现]6、在Vim 里写博客、Wiki [ 由vimWiki 实现]7 、添加了Vim 文档的简体中文版8、更多功能详见配置代码,本处提供配置文件和自定义配置文件夹的下载,下载链接请见本文末尾经过着色的配置文件:使用说明:如果想图省事,那你就重新安装你的Vim 到D:\Apps\Gvim ,然后执行以下步骤:1 、把整个vimfiles 目录复制到D:\Apps\Gvim 目录下覆盖原有目录2、将ctags.exe 、cscope.exe 、unzip.exe 复制到D:\Apps\Gvim\vim73 目录3 、将D:\Apps\Gvim\vim73 添加进环境变量4、把_vimrc 文件复制到D:\Apps\Gvim 目录下覆盖原有文件[ 有完整版和无Vimwiki 版,建议使用后一版本] [ 如需使用wiki 功能则可使用完整版,并参考完成环境的配置] 配置文件中,凡涉及具体路径信息的请更换为你自己本机实际路径,凡涉及姓名、邮箱的请更换为你自己的姓名、邮箱ctags 使用方法简要介绍:比如我想添加C/C++ 语言的代码补全,并能在函数调用间实现跳转,请执行以下步骤:1 、首先确保系统能够找到ctags.exe ,也就是ctags.exe 添加到了系统环境变量2、以MinGW 为例,到你编译器安装目录的include 目录 (比如C:\MinGW\include )执行ctags -R --languages=c,c++ ,这将在include 目录下生成一个tags 文件3 、在_vimrc 文件中添加以下一行:set tags+=C:\MinGW\include\tags4、以后编辑C/C++ 源文件时,按Ctrl + P 即可拥有C/C++ 的代码提示。
比如,敲入一个pr ,然后按这个快捷键,Vim 将自动弹出包括printf 在内的众多相关变量和函数名供你选择5、函数调用跳转:将光标移动某个函数名上,按Ctrl + ] ,Vim 将跳转到该函数的定义处,按Ctrl + T 即可返回以上只是ctags 简单的用法,更专业的介绍请参考Google header .html 和footer .html 是我博客的wiki 模板,如果你想使用vimwiki 则可以借鉴使用教程资料文件夹附带了几份Vim 参考材料,可以辅助Vim 的使用本帖附件下载地址:标签:GVimVim 代码片段(3)[ 图片] gvim.jpg017[代码]_vimrc (完整版) view source print?001IIAuthor: Ruchee 002 IIEmail:003 IIWebSite:004IIDate: 2012-01-04005006 "Ctrl + K -- 光标移上一行末尾007 "Ctrl + H -- 光标移行首008 "Ctrl + L -- 光标移行尾009 "Ctrl + Z -- 取代ESC 模式键 [和Lingos 快捷键有冲突 ]010 "Ctrl + S -- 保存文件011 "Ctrl + C -- 编译[支持C/C++ 、Java 、Haskell]012 "Ctrl + R -- 运行[支持C/C++、Java 、Haskell 、 Lua 、Perl 、Python、Ruby]013 "Ctrl + ]-- 转到函数定义014 "Ctrl + T -- 返回调用函数015"Ctrl + E C/C++/Java--添加注释[插入模式下] 等][添加的是 C 语言的行注释,所以适用于016"Ctrl + E-- 步加载语法模板和作者、 时间信息[非插入模式下 ][本质是:LoadTemplate 禾口:AuthorlnfoDetect的结合]"<C-P> -- 单词补全"<C-X><C-L> --整行补全"Tab 键--插入模式下的全功能语法结构补全 [snipMate 插件]"wm - "\ww - -开启文档浏览窗口 - 进入vimWiki 模式 "za -- "zM -- "zR -- 打开或关闭当前折叠 关闭所有折叠 打开所有折叠":set syntax=cpp -- 手动选择语法高亮 [或:set ]":%!xxd -- 转储二进制文件,以十六进制形式显示":%!xxd -r --还原二进制文件----- 主要插件详细用法说明 -------------------- ":Tlist -- 呼出变量和函数列表 [TagList 插件] ":FencView --查看文件编码和更改文件编码[FencView 插件]呼出语法模板 [Load_Template 插件]--添加作者、时间等信息 [NERD_commenter &&" ------ a.vim [ 自动切换 C/C++ 同名头文件] --------------------II":A --切换同名头文件并独占整个屏幕":AS --切换同名头文件并垂直分屏,头文件在上 ":AV --切换同名头文件并水平分割,头文件在左" ------ mark.vim [追踪高亮指定关键字 ] ------------II"\m --normal 模式下,在想要高亮的单词上面敲击\m 即可高亮或取消高亮该单词 ":Mark --取消所有高亮":Mark abc --指定高亮单词 abc 或取消高亮 abc":NERDTree -- 启动 NERDTree 插件"o [小写]--切换当前文件或目录的打开、关闭状态 "u --打开上层目录"p [小写]--返回上层目录 "P [大写]--返回根目录 "K --转到当前目录第一个节点 "J --转到当前目录最后的节点 "m --显示文件系统菜单[增、删、移]018 019 020 021 022 023 024 025 026027 028 029 030 031 032 033 034 035 036 037 038 039 040 041 042 043 044 045 046 047 048 049 050 051 052 053 054 055 056057 058 059 060 061 062 063 064 065" --------- NERDTree [II智能文件浏览器] ----------":LoadTemplate -- ":Authorl nfoDetect authorinfo 插件]"?--弹出帮助菜单017"q --退出该插件" --------- s nipMate [ 语法结构补全] --------------------" ------ 例如:在编辑C/C++源文件时,输入单词main,然后按TAB键,Vim 将自动补全成完整的main函数" ------ 更多补全请自行查看vimfiles 目录下的snippets 文件夹" ------ 此处只说明了C/C++的补全用法,很多经过了我的修改和调整,你也可以自行调整成适合自己的补全样式II"main -- C/C++ 语言main 函数"inc -- #i nclude <>"ii nc -- #i nclude """i ncs -- #i nclude <stdio.h> or #i nclude <iostream>"using -- using n amespace std;"def -- #defi ne"un -- un sig ned"re -- return"p -- prin tf("\n");"s -- sca nf("");"fpr -- fprin tf(abc, "\n");"if -- if(){}"elif -- elseif(){}"el -- else{}"t -- a ? b : c"do -- do{}while();"wh -- while(){}"for -- for(){}"forr -- for(i = 0; i < 10; i++){}"cl -- class abc{};"fun -- void abc(){}"fund -- void abc();"td -- typedef a b;"st -- struct abc{};"tds -- typedef struct _abc{}abc;"tde -- typedef enu m{};".--[]"配色方案colorscheme desert " 灰褐色"字体、字号set guifo nt=Courier\ New:h10set tabstop=4 " set shiftwidth=4 " set auto indent " 设置tab键的宽度换行时行间交错使用4个空格自动对齐066 067 068069070071072 073 074 075 076 077 078 079 080 081 082 083 084 085 086 087 088 089 090 091 092 093 094 095 096 097 098 099 100 101 102 103 104 105 106 107 108 109 110 111 112 113set backspace=2 " 设置退格键可用set cin de nt shiftwidth=4 " 自动缩进4 空格set smarti ndent " 智能自动缩进set ai!" 设置自动缩进set nu!" 显示行号"set showmatch " 显示括号配对情况set mouse=a " 启用鼠标set ruler " 右下角显示光标位置的状态行set incsearch " 查找book时,当输入/b时会自动找到set hlsearch " 开启高亮显示结果set in csearch " 开启实时搜索功能set nowrapscan " 搜索到文件两端时不重新搜索set nocompatible " 关闭兼容模式set vb t_vb=" 关闭提示音"set cursorli ne " 突出显示当前行set hidden " 允许在有未保存的修改时切换缓冲区set list " 显示Tab符,使用一高亮竖线代替set listchars=tab:\|\ ,syn tax en able " 打开语法高亮syntax on " 开启文件类型侦测in de nt on " 针对不同的文件类型采用不同的缩进格式plugin on " 针对不同的文件类型加载对应的插件plugi n indent onif has("gui_r unnin g") auGUIE nter * simalt ~x " 窗口启动时自动最大化"set guiopti on s-=m " set guiopti on s-=T " "set guiopti on s-=L " "set guiopti on s-=r " "set guiopti on s-=b " "set showtabline=0 "隐藏菜单栏隐藏工具栏隐藏左侧滚动条隐藏右侧滚动条隐藏底部滚动条隐藏Tab栏en difset writebackup " 设置无备份文件set nobackupset autochdir " 设定文件浏览器目录为当前目录"set no wrap " 设置不自动换行set foldmethod=sy ntax " 选择代码折叠类型set foldlevel=100 " 禁止自动折叠"每行超过80个的字符用下划线标示au*.asm,*.c,*.cpp,*.java,*.cs,*.sh,*.lua,*.pl,*.pm,*.py,*.rb,*.hs,*.vim 2match Underlined /.\%81v/"编码设置BufRead,BufNewFile114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157158159 160 161"set en codi ng=utf-8 setset laststatus=2 " 开启状态栏信息set cmdheight=2 " 命令行的高度,默认为 1,这里设为2"状态行显示的内容 [包括系统平台、文件类型、坐标、所占比例、 时间等]setstatusli ne=%F%m%r%h%w\[FORMAT=%{ &ff}]\[TYPE=%Y]\[POS=%l,%v][%p%%]\ %y%r%m%*%=\ %{stftime(\"%d/%m/%y\ -\ %H:%M\")}"#########括号、引号、中括号等自动匹配######### ":ino remap ( ()<ESC>i :ino remap ) <c-r>=ClosePair(')')<CR> :in oremap { {}<ESC>i:ino remap } <c-r>=ClosePair('}')<CR> :in oremap [ []<ESC>i:ino remap ] <c-r>=ClosePair(']')<CR> ":i no remap < <><ESC>i":i no remap > <c-r>=ClosePair('>')<CR> :in oremap ""”<ESC>i :in oremap ' "<ESC>i :inoremap '、'<ESC>i function ClosePair(char) if getli ne('.')[col('.') - 1] == a:char return "\<Right>"162 163 164 165 166 167 168 169 170 171172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209"For Haskell:let hs_highlight_delimiters=1 " :let hs_highlight_boolea n=1 " :let hs_highlight_types=1 " :let hs_highlight_more_types=1 " :let hs_highlight_debug=1 " :let hs_allow_hash_operator=1 "高亮定界符把True 和False 识别为关键字 把基本类型的名字识别为关键字把更多常用类型识别为关键字高亮调试函数的名字阻止把#咼亮为错误elseretur n a:char en dif en df"######### 自定义快捷键 ######### ""Ctrl + K将光标移到上一行的末尾imap <ESC>kA "Ctrl + L将光标移到行尾imap <ESC>A "Ctrl + H将光标移到行首imap <ESC>I"Ctrl + Z 取代ESC 模式键 :ino remap <ESC> "Ctrl + S 保存文件 map <ESC>:w<CR> imap <ESC>:w<CR>a vmap <ESC>:w<CR> "Ctrl + E 一步加载语法模板和作者、时间信息[非插入模式]map<ESC>:LoadTemplate<CR><ESC>:Authorl nfoDetect<CR><ESC>Gi vmap <ESC>:LoadTemplate<CR><ESC>:AuthorI nfoDetect<CR><ESC>Gi "Ctrl + E在当前行添加 C 语言行注释[插入模式] imap /* */<ESC>hhi"######### 第三方插件 ######### ""WinMan ager直接输入wm 命令即可开启文件浏览窗口let g:winMan agerWi ndowLayout=" nmap wm :WMToggle<cr> "Min iBufExplorer多个文件切换可使用鼠标双击相应文件名进行切换let g:mi niBufExpIMapWi ndowNavVim=1 let g:mi niBufExpIMapWi ndowNavArrows=1 let g:mi niBufExplMapCTabSwitchBufs=1210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257let g:mi niBufExplModSelTarget=1 只显示当前文件的tags如果Taglist 窗口是最后一个窗口则退出 Vim在右侧窗口中显示"ctags"--先在项目顶层目录执行 ctags -R ,然后打开源文件,在命令模式中执行如:settags=../../tags "--这样在函数名上按<C-]>即可转到函数定义,按<C-T>可以返回调用地址"--如果长时间需要在该目录工作,也可以将tags 路径写入配置文件"set tags+=C:\Develop\Mi nGW\i nclude'tags " For C/C++ "set tags+=C:\Develop\GTK\i nclude\tags " For GTK+ "set tags+=C:\Develop\Lua\lua\tags " For Lua "set tags+=G:\Cygw in\usr\ in clude\tags " For Cygw in "TxtBrowser 高亮TXT 文本文件au BufRead,BufNewFile *.txt setlocal ft=txt "fen cview自动编码识别:Fe ncView查看文件编码和更改文件编码let g:fe ncview_autodetect=1 "Load_Template根据文件后缀自动加载模板,使用:LoadTemplate 呼出let g:template_path='D:\Apps\Gvim\vimfiles\template\'"NERD_commenter && authorinfo 自动添加作者、时间等信息,使 用:AuthorInfoDetect 呼出 let g:vimrc_author='Ruchee' let g:vimrc_email=" let g:vimrc_homepage=""######### 一键保存和编译 ######### " "######### 如此处没有配置你需要的编程语言,请参照示例自行配置, 很简单的"编译C 源文件 func! CompileGcc() exec "w"let compilecmd="!gcc -Wall -peda ntic -std=c99 " let compileflag="-o %<"exec compilecmd." % ".compileflag endfunc "编译C++源文件258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304"TagList 键入:Tlist 开启 let Tlist_Show_ On e_File=1 " let Tlist_Exit_ On lyWi ndow=1 " let Tlist_Use_Right_Wi ndow=1 "func! CompileCpp() exec "w"let compilecmd="!g++ -Wall -peda ntic -std=c++98 " let compileflag="-o %<"exec compilecmd." % ".compileflag endfunc"编译Java 源文件 func! CompileJava() exec "w" exec "!javac %" endfunc"编译Haskell 源文件 func! CompileHaskell() exec "w"let compilecmd="!ghc --make " let compileflag="-o %<"exec compilecmd." % ".compileflag endfunc"运行Lua 源文件 func! Run Lua() exec "w" exec "!lua %" endfunc"运行Perl 源文件 func! Run Perl() exec "w" exec "!perl %" endfunc"运行Python 源文件 func! Run Pytho n() exec "w" exec "!python %" endfunc"运行Ruby 源文件 func! Ru nRuby() exec "w" exec "!ruby %" endfunc"根据文件类型自动选择相应的编译函数 func! CompileCode() exec "w" if & == "c"305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354exec "call CompileGcc()" elseif & == "cpp" exec "call CompileCpp()" elseif & == "java" exec "call CompileJava()" elseif & == "haskell" exec "call CompileHaskell()" elseif & == "lua" exec "call Run Lua()" elseif & == "perl" exec "call Run Perl()" elseif & == "pyth on" exec "call Run Pytho n()" elseif & == "ruby" exec "call Ru nRuby()" en dif endfunc "运行可执行文件 func! Run Result() exec "w" if & == "c" exec "! %<" elseif & == "cpp" exec "! %<" elseif & == "java" exec "!java %<" elseif & == "haskell" exec "! %<" elseif & == "lua" exec "!lua %<」ua" elseif & == "perl" exec "!perl %<.pl" elseif & == "pyth on" exec "!pyth on %<.py" elseif & == "ruby" exec "!ruby %<.rb" en dif endfunc "Ctrl + C 一键保存、编译 map :call CompileCode()<CR> imap <ESC>:call CompileCode()<CR> vmap <ESC>:call CompileCode()<CR> "Ctrl + R 一键保存、运行 map :call Ru nResult()<CR> imap <ESC>:call Ru nResult()<CR> vmap <ESC>:call Ru nResult()<CR>355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404set cindent shiftwidth=4 " 自动缩进4空格405 406407408409 " ######### VimWiki 写作助手 #########"410410 "使用鼠标映射411 let g:vimwiki_use_mouse = 1413412 "不要将驼峰式词组作为 Wiki 词条413 let g:vimwiki_camel_case = 0416414 "声明可以在 wiki 里面使用的HTML 标签 let415 g:vimwiki_valid_html_tags='b,i,s,u,sub,sup,kbd,brenter ,left,right,h4,h5,h6,pre'419416 let g:vimwiki_list = [{417 \ 'path': 'D:/Apps/Gvim/mysite/wiki',418 \ 'path_html': 'D:/Apps/Gvim/mysite/html/', 419 \ 'html_header': 'D:/Apps/Gvim/mysite/template/header420 \ 'html_footer': 'D:/Apps/Gvim/mysite/template/footer 421 \ 'auto_export': 1,\ 'nested_syntaxes': {'Asm': 'asm', C: 'c','Haskell':'haskell', 'Lua': 'lua', 'Perl': 'perl',426 'php', 'HTML': 'html', 'Bash': 'sh', 'Vim': 'Automake': 'AUTOMAKE'},}],hr ,div,del,code,red,c .html', .html', 'C++': 'cpp','Java': 'java', 'Pytho n': 'pytho n', 'PHP': 'vim', 'Make': 'make',[代码]_vimrc (无 Vimwiki 版)view source print? 00 "配色方案1 00 colorscheme desert "2 灰褐色00 3 004 005 006 007 00 8 00 9 01 "字体、字号set guifo nt=Courier\New:h10 set tabstop=4 " 设置tab 键的宽度set shiftwidth=4 " 换行时行间交错使用 4个空格set autoi nde nt " 自动对齐set smart indent " 智能自动缩进 set ai!" 设置自动缩进 set n u!" 显示行 .号 "set showmatch " 显示括号配对情况 set mouse=a " 启用鼠标 set ruler " 右下角显示光标位置的状态行 set in csearch " 查找book 时,当输入/b 时会自动找到 set hlsearch " 开启咼亮显示结果 set in csearch " 开启实时搜索功能 set no wrapscan ” 搜索到文件两端时不重新搜索 set n ocompatible " 关闭兼容模式 set vb t_vb=" 关闭提示音 "set cursorl ine " 犬出显示当前仃 set hidden " 允许在有未保存的修改时切换缓冲区 set list " 显示Tab 符,使用一高亮竖线代替set listchars=tab:\|\ , syn tax en able " 打开语法高亮 syntax on " 开启文件类型侦测 in de nt on " 针对不同的文件类型采用不同的缩进格式 plugin on " 针对不同的文件类型加载对应的插件 plugi n indent on 0110120130140150160170180190202102202302402502602702802903031032033034035set cindent shiftwidth=4 " 自动缩进4空格if has("gui_r unnin g") au GUIE nter * simalt ~x "窗口启动时自动最大化"set guiopti on s-=m " set guiopti on s-=T " "set guiopti on s-=L " "set guiopti on s-=r " "set guiopti on s-=b " "set showtabli ne=0 " en dif set writebackup "设置无备份文件set nobackup"set no wrap " 设置不自动换行set foldmethod=s yn tax " set foldlevel=100 " 禁止自动折叠"每行超过80个的字符用下划线标示 au*.asm,*.c,*.cpp,*.java,*.cs,*.sh,*.lua,*.pl,*.pm,*.py,*.rb,*.hs,*.vim 2match Underlined /.\%81v/ "编码设置"set en codi ng=utf-8 set036 037 03 803 904 004 104 204 3044045 046 047 048 049 05 005105 2 05305405 505 605705805906隐藏菜单栏隐藏工具栏隐藏左侧滚动条隐藏右侧滚动条隐藏底部滚动条隐藏Tab 栏set autochdir " 设定文件浏览器目录为当前目录选择代码折叠类型BufRead,BufNewFile15 06 106 2 06 3 06 4 06 5 06 6 06 7 06 8 06 9 07 0 07 1 07 2 07 3 07 407 507 6 07 7 07 8 07 9 08 0 08 1 08 2 08 3 08 4 "For Haskell:let hs_highlight_delimiters=1 ":let hs_highlight_boolea n=1 ":let hs_highlight_types=1 ":let hs_highlight_more_types=1 ":let hs_highlight_debug=1 ":let hs_allow_hash_operator=1 "set laststatus=2 "set cmdheight=2 "高亮定界符把True和False识别为关键字把基本类型的名字识别为关键字把更多常用类型识别为关键字高亮调试函数的名字阻止把#咼亮为错误开启状态栏信息命令行的高度,默认为1,这里设为2"状态行显示的内容[包括系统平台、文件类型、坐标、所占比例、时间等]set statusli ne=%F%m%r%h%w\ [FORMAT=%{ &ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %y%r%m%*%=\ %{strftime(\"%d/%m/%y\-\ %H:%M\")}"#########:ino remap( ()<ESC>i括号、引号、中括号等自动匹配######### ":ino remap ) <c-r>=ClosePair(')')<CR>8:in oremap { {}<ESC>i :ino remap } <c-r>=ClosePair('}')<CR> :in oremap [ []<ESC>i :ino remap ] <c-r>=ClosePair(']')<CR> ":i no remap < <><ESC>i ":i no remap > <c-r>=ClosePair('>')<CR> :in oremap ""”<ESC>i :in oremap ' "<ESC>i :inoremap '、'<ESC>i function ClosePair(char) if getli ne('.')[col('.') - 1] == a:char return "\<Right>" else retur n a:char en dif50860870880890909109209309409509609709809910101102103104105106107108109"######### 自定义快捷键 ######### ""Ctrl + K 将光标移到上一行的末尾 imap <ESC>kA "Ctrl + L 将光标移到行尾 imap <ESC>A "Ctrl + H 将光标移到行首 imap <ESC>I "Ctrl + Z 取代ESC 模式键 :ino remap <ESC> "Ctrl + S 保存文件 map <ESC>:w<CR> imap <ESC>:w<CR>a vmap <ESC>:w<CR> "Ctrl + E 一步加载语法模板和作者、时间信息 111111121131141151161171181191212112212312412512612712812913131132133134[非插入模式]vmap <ESC>:LoadTemplate<CR><ESC>:Authorl nfoDetect<CR><ESC>Gi "Ctrl + E 在当前行添加 C 语言行注释[插入模式] imap /* */<ESC>hhilet g:winMan agerWi ndowLayout="nmap wm :WMToggle<cr> "Min iBufExplorer 多个文件切换可使用鼠标双击相应文件名进行切换 let g:mi niBufExpIMapWi ndowNavVim=1 let g:mi niBufExpIMapWi ndowNavArrows=1 let g:mi niBufExplMapCTabSwitchBufs=1 let g:mi niBufExplModSelTarget=11351361371381391414114214314414514614714814915151152153154 15 5 156157158159"######### 第三方插件 #########" "WinMan ager 直接输入wm 命令即可开启文件浏览窗口"TagList 键入:Tlist 开启let Tlist_Show_ On e_File=1 " let Tlist_Exit_ On lyWi ndow=1 " 只显示当前文件的tags如果Taglist窗口是最后一个窗口则退出Vim"######### 一键保存和编译 ######### " "ctags "--先在项目顶层目录执行 ctags -R ,然后打开源文件,在命令模式中执行如: set tags=../../tags "--这样在函数名上按 <C-]> 即可转到函数定义,按 <C-T> 可以返回调用地址 "--如果长时间需要在该目录工作,也可以将 tags 路径写入配置文件 "set tags+=C:\Develop\Mi nGW\i nclude'tags " For C/C++ "set tags+=C:\Develop\GTK\i nclude\tags " For GTK+ "set tags+=C:\Develop\Lua\lua\tags " For Lua "set tags+=G:\Cygw in\usr\ in clude\tags " For Cygw in "TxtBrowser 高亮TXT 文本文件 au BufRead,BufNewFile *.txt setlocal ft=txt "fen cview 自动编码识别:Fe ncView 查看文件编码和更改文件编码 let g:fe ncview_autodetect=1 "Load_Template 根据文件后缀自动加载模板,使用 :LoadTemplate 呼出let g:template_path='D:\Apps\Gvim\vimfiles\template\' "NERD_commenter && authorinfo 自 动添加作者、时间等信息,使 用:AuthorInfoDetect 呼出 let g:vimrc_author='Ruchee' let g:vimrc_email=" 1611621631641651661671681691717117217317417517617717817918181182183如此处没有配置你需要的编程语言,请参照示例自行配置,很简单 "编译C 源文件 func! CompileGcc() exec "w" let compilecmd="!gcc -Wall -peda ntic -std=c99 " let compileflag="-o %<" exec compilecmd." % ".compileflag endfunc "编译C++源文件 func! CompileCpp() exec "w" let compilecmd="!g++ -Wall -peda ntic -std=c++98 " let compileflag="-o %<" exec compilecmd." % ".compileflag endfunc "编译Java 源文件 func! CompileJava()1861871881891919119219319419519619719819920201202203204205206207208"######### 的"######### 一键保存和编译 ######### " exec "w" exec "!javac %" endfunc "编译Haskell 源文件 func! CompileHaskell() exec "w" let compilecmd="!ghc --make " let compileflag="-o %<" exec compilecmd." % ".compileflag endfunc "运行Lua 源文件 func! Run Lua() exec "w" exec "!lua %" endfunc "运行Perl 源文件 func! RunPerl() exec "w" exec "!perl %" endfunc 运行Python 源文件21211212213214215216217218219222212222232242252262272282292323123223323func! RunPython() exec "w" exec "!python %" endfunc "运行Ruby 源文件 func! Ru nRuby() exec "w" exec "!ruby %" endfunc "根据文件类型自动选择相应的编译函数 func! CompileCode() exec "w" if & == "c" exec "call CompileGcc()" elseif & == "cpp" exec "call CompileCpp()" elseif & == "java" exec "call CompileJava()" elseif & == "haskell" exec "call CompileHaskell()" elseif & == "lua"5236237238239242412422432442452462472482492525125225325425525625725825elseif & == "perl" exec "call RunPerl()" elseif & == "pyth on" exec "call Run Pyth on()" elseif & == "ruby" exec "call Ru nRuby()" en dif endfunc "运行可执行文件 func! Run Result() exec "w" if & == "c" exec "! %<" elseif & == "cpp" exec "! %<" elseif & == "java" exec "!java %<" elseif & == "haskell" exec "! %<" elseif & == "lua" exec "!lua %<」ua" elseif & == "perl" exec "!perl %<.pl" elseif & == "pyth on"26 0 26 1 26 2 26 3 26 4 26 5 26 6 26 7 26 8 26 9 27 0 27 1 27 2 27 3 27 4 27 5 27 6 27 7 27 8 27 9 28 0 28 1 28 2 28 328 0exec ”!python %<.py"elseif & == "ruby"exec ”!ruby %<.rb"en difendfunc"Ctrl + C 一键保存、编译map :call CompileCode()<CR>imap <ESC>:call CompileCode()<CR> vmap <ESC>:call CompileCode()<CR>"Ctrl + R 一键保存、运行map :call Ru nResult()<CR>imap <ESC>:call Ru nResult()<CR> vmap <ESC>:call Ru nResult()<CR>5 286 287 28 8 289 29 0 29 1 29 2 29 3 29 4 29 5 29 6 29 7 29 8 29 9 30。