Vim-详细配置

合集下载

vim编辑器及环境变量配置

vim编辑器及环境变量配置

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详解

vim配置文件.vimrc详解

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 中进行代码编辑,并列举一些常用的技巧和快捷方式,帮助读者更好地使用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)教程及问题

vim配置(vimplus)教程及问题

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帮助⽂档。

VI基本配置

VI基本配置
function ClosePair(char)
if getline('.')[col('.') - 1] == a:char
return "/<Right>"
else
return a:char
endif
endf
下载tabbar.vim 插件,将其拷贝到/usr/share/vim/vim72/plugin/ 目录下。
sp file.xxx
注意: 在打开新文件时,光标一定要处在主编辑界面中,这样才能保证标签的位置的位置合适。
关闭标签页使用:bd file.xxx
6. a.vim插件安装
下载tabbar.vim 插件,将其拷贝到/usr/share/vim/vim72/plugin/ 目录下。
E.g. if you are editing foo.c and need to edit foo.h simply execute :A and
设置C/C++ 语言的具体缩进方式(以我的windows 风格为例):
set cinoptions={0,1s,t0,n-2,p2s,(03s,=.5s,>1s,=1s,:1s
如果想在左侧显示文本的行号,可以用以下语句:
set nu
最后,如果没有下列语句,就加上吧:
:inoremap } <c-r>=ClosePair('}')<CR>
:inoremap [ []<ESC>i
:inoremap ] <c-r>=ClosePair(']')<CR>

Linux基本命令vim命令(一)

Linux基本命令vim命令(一)

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在光标所在⾏的下⾯插⼊新的⼀⾏。

vim操作

vim操作

∙如果该文件存在,文件被打开并显示内容∙如果该文件不存在,当编辑后第一次存盘时创建它∙如果目录不存在,将无法保存编辑内容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编辑器的使⽤这⾥主要介绍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编辑器时,⾸先进⼊普通模式。

在普通模式下,从键盘输⼊任何字符都被当作命令来解释。

普通模式下没有任何提⽰符,当输⼊命令时⽴即执⾏,不需要回车,⽽且输⼊的字符不会在屏幕上显⽰出来。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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。

相关文档
最新文档