`
lukew
  • 浏览: 51797 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

VIM设置

阅读更多
vim简介
 
Vim(Vi Improved) 是一个类似于vi 的文本编辑器,在Vi的基础上增加了很多新的特性和功能。Vim以其强大的功能和可定制能力

,成为Linux/Unix环境下开源的最重要的编辑器之一(另一个是 Emacs),被众多开发者所喜爱。笔者此时所用的是最新的7.1版本


与大部分其它编辑器不同,进入 Vim 后,缺省状态下键入的字符并不会插入到所编辑的文件之中。Vim 的模式(mode,可以简单地

理解为“状态”)概念非常重要。需要知道,Vim 有以下几个模式:
1)   正常(normal)模式,缺省的编辑模式;下面如果不加特殊说明,提到的命令都直接在正常模式下输入;任何其它模式中都

可以通过键盘上的 Esc 键回到正常模式。
2)   命令(command)模式,用于执行较长、较复杂的命令;在正常模式下输入“:”(一般命令)、“/”(正向搜索)或“?”

(反向搜索)即可进入该模式;命令模式下的命令要输入回车键(Enter)才算完成。
3)   插入(insert)模式,输入文本时使用;在正常模式下键入“i”(insert)或“a”(append)即可进入插入模式(也有另

外一些命令,如“c”,也可以进入插入模式,但这些命令有其它的作用)。
4)   可视(visual)模式,用于选定文本块;可以在正常模式下输入“v”(小写)来按字符选定,输入“V”(大写)来按行选

定,或输入“Ctrl-V”来按方块选定。
5)   选择(select)模式,与普通的 Windows 编辑器较为接近的选择文本块的方式;在以可视模式和选择模式之一选定文本块之

后,可以使用“Ctrl-G”切换到另一模式——该模式很少在 Linux 上使用,本文中就不再介绍了。
------------------------------------------
首先 vim ~/.vimrc 打开编辑文件

[转]
   1、VI或VIM的配置文件的路径

    发现/usr/share/vim/vimrc和/etc/vim/vimrc指向是同一个文件,即vimrc,为vi和vim的配置文件,修改这个文件即可。这个路径在不同的LINUX版本中可能会不同。

    2、配置颜色

    配轩VI和VIM的颜色显示,使它能够高亮度显示一些特别的单词,这对编写程序很有用。后来打开文件发现里面其实已经有一行了,只是用引号注释掉了,只需 将syntax on 所在行前面的引号去掉即可。或者另外独立添加一行:syntax on 也行,另外编辑/etc/profile 增加一行alias vi="vim"就行了。

    3、设置鼠标

    使用VI编辑文本时,如果想修文件中改离光标较远的位置,这时候想用鼠标定位,可默认情况下,鼠标是不可用的。如果你想使用鼠标,只需另起一行,写上:set mouse=a 即可

    4、设置自动缩进

    默认情况下,VI和VIM都没有缩进的,每换一行,光标均定位在顶格,如果你想自动对齐,请将 set autoindent所在行前面的引号去掉,或者另外添加一行:set autoindent也可。这与配置颜色类似。这样的设置的结果是按回车后新行与上一行自动对齐。

    5、设置tab的缩进量

    如果用python编写程序,那么行缩进量是一个极其重要的概念,同一个块的缩进量必须相同。你可能喜欢在行前加空格来表示缩进,但每次必须敲多次空格 键,如果你喜欢用按TAB键来表示缩进,你可能觉得写的文本或程序不太好看,因为默认情况下,VI和VIM的TAB缩进量比较大(至少六,七个字符)。设 置TAB键缩进量的方法:set shiftwidth=3 你也可以选一 个你自己喜欢的缩进量,比如2,或4.

----------------------------------------------

首先从视觉方面:

第一个要做的是缩进,修改你的VIM配置文件_vimrc,在最后加入set cindent,这样就设置了c风格的缩进,在这里缩进的大小是shiftwidth的值。

第二个要做的是语法高亮,这个是必须的,在中_vimrc加入syntax enable

第三个要做的字体的设置,设置一个舒服的字体可以让你编程的时候舒服好多,用editplus的时候我就用的Consolas,在vim中我还是用的这种字体,在_vimrc中加入

if has(”gui_running”)
set guifont=Consolas:h9
endif

表示运行界面vim的时候就用这种字体。

第四,设置配色方案,可以到点击这儿下载,然后放到$VIM"vimfiles"colors这个目录下,然后在中加入如下配置

if has(”gui_running”)
set guifont=Consolas:h9
” set color schema
colorscheme
colorscheme_name
endif

colorscheme_name为你需要设置的配色方案的名称。

接下来是在运行程序中用到的:

第一,使用ctag

VIM中已经带了Ctags这个程序。尽管ctags也可以支持其它编辑器,但是它正式支持的只有VIM。Ctags可以帮助程序员很容易地浏览源代码。用下面的命令可以在源代码的根目录下创建“tags”文件:

[/home/brimmer/src]$ ctags -R

“-R”表示递归创建,也就包括源代码根目录下的所有子目录下的源程序。“tags”文件中包括这些对象的列表:

l        用#define定义的宏

l        枚举型变量的值

l        函数的定义、原型和声明

l        名字空间(namespace)

l        类型定义(typedefs)

l        变量(包括定义和声明)

l        类(class)、结构(struct)、枚举类型(enum)和联合(union)

l        类、结构和联合中成员变量或函数

VIM用这个“tags”文件来定位上面这些做了标记的对象,下面介绍一下定位这些对象的方法:

1)        用命令行。在运行vim的时候加上“-t”参数,例如:

[/home/brimmer/src]$ vim  -t  foo_bar

这个命令将打开定义“foo_bar”(变量或函数或其它)的文件,并把光标定位到这一行。

2)        在vim编辑器内用“:ta”命令,例如:

:ta foo_bar

3)        最方便的方法是把光标移到变量名或函数名上,然后按下“Ctrl-]”。用“Ctrl-o”退回原来的地方。

注意:运行vim的时候,必须在“tags”文件所在的目录下运行。否则,运行vim的时候还要用“:set tags=”命令设定“tags”文件的路径,这样vim才能找到“tags”文件。

你还可以选择使用taglist这个插件,这个插件可以在右侧显示函数,变量等的列表

第二,改正程序中的错误

VIM编辑器的环境下用“:make”(make工具的使用已经在我昨天的文章中 提到的云风的几篇文章中详细介绍到)就可以编译程序,当然其前提是在当前目录下有Makefile文件。运行完“:make”之后,如果程序中有错误,就 会显示出来。这时候,光标会自动指向第一个出现错误的地方,而且你还可以看到错误的提示。然后,你就可以改正错误,而不用手工找到出错的那一行。记住下面 几个有用的命令:

l        “:cl”列出错误

l        “:cn”让光标指向下一个错误

l        “:cp”让光标指向上一个错误

l        “:cnew”从头开始

你甚至可以让VIM识别出其它编译器而不是gcc的错误提示。这对一些开发嵌入式系统的程序员这很有用,因为他们很可能用的不是gcc而是其它编译器。通过设置“errorformat”的值,可以让VIM识别出编译器的出错提示。因为不同的编译器的出错提示是不同的,所以如果用的不是gcc就要重新设置。

errorformat”的值是一个字符串,它的格式和C语言的scanf的字符串格式相识。

gcc的“errorformat”的值为:%f:%l:"%m。其中“%f”表示文件名,“%l”表示行号,“%m”表示出错信息。

用“:h errorformat”查看详细的帮助信息。

“:h quickfix”、“:h make”、“:h makeprg”、“:h errorfile”查看其它的信息。

第三,使用快捷键

下面的这些快捷键对程序员很有帮助:
在函数中移动光标

[[  转到上一个位于第一列的“{”

]]  转到下一个位于第一列的“{”

{   转到上一个空行

}   转到下一个空行

gd  转到当前光标所指的局部变量的定义

*   转到当前光标所指的单词下一次出现的地方

#   转到当前光标所指的单词上一次出现的地方
括号的匹配

%   用来进行小括号、中括号和大括号的匹配。这要看当前光标指向的是什么符号了。

----------------------------------------------

一个ubuntu 下的vimrc配置例子:

<!---->"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 一般设定
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 设定默认解码
set fenc
=utf-8
set fencs
=utf-8,usc-bom,euc-jp,gb18030,gbk,gb2312,cp936

"设定搜索是的高亮显示
set hlsearch

" 不要使用vi的键盘模式,而是vim自己的
set nocompatible

" history文件中需要记录的行数
set history=100

" 在处理未保存或只读文件的时候,弹出确认
set confirm

" 与windows共享剪贴板
set clipboard+=unnamed

" 侦测文件类型
filetype on

" 载入文件类型插件
filetype plugin on

" 为特定文件类型载入相关缩进文件
filetype indent on

" 保存全局变量
set viminfo+=!

" 带有如下符号的单词不要被换行分割
set iskeyword
+=_,$,@,%,#,-

" 语法高亮
syntax on

" 高亮字符,让其不受100列限制
:highlight OverLength ctermbg
=red ctermfg=white guibg=red guifg=white
":match OverLength '"%101v.*'

" 状态行颜色
highlight StatusLine guifg=SlateBlue guibg=Yellow
highlight StatusLineNC guifg=Gray guibg=White

"高亮当前行
set cursorline

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 文件设置
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 不要备份文件(根据自己需要取舍)
set nobackup

" 不要生成swap文件,当buffer被丢弃的时候隐藏它
setlocal noswapfile
set bufhidden=hide

" 字符间插入的像素行数目
set linespace
=0

" 增强模式中的命令行自动完成操作
set wildmenu

" 在状态行上显示光标所在位置的行号和列号
set ruler
set rulerformat
=%20(%2*%<%f%=" %m%r" %3l" %c" %p%%%)

" 命令行(在状态行下)的高度,默认为1,这里是2
set cmdheight=2

" 使回格键(backspace)正常处理indent, eol, start等
set backspace
=2

" 允许backspace和光标键跨越行边界
set whichwrap+=<,>,h,l

" 可以在buffer的任何地方使用鼠标(类似office中在工作区双击鼠标定位)
set mouse
=a
set selection
=exclusive
set selectmode
=mouse,key

" 启动的时候不显示那个援助索马里儿童的提示
set shortmess=atI

" 通过使用: commands命令,告诉我们文件的哪一行被改变过
set report
=0

" 不让vim发出讨厌的滴滴声
set noerrorbells

" 在被分割的窗口间显示空白,便于阅读
set fillchars
=vert:" ,stl:" ,stlnc:"

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 搜索和匹配
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 高亮显示匹配的括号
set showmatch

" 匹配括号高亮的时间(单位是十分之一秒)
set matchtime
=5

" 在搜索的时候不忽略大小写
set noignorecase

" 不要高亮被搜索的句子(phrases)
"set nohlsearch

" 在搜索时,输入的词句的逐字符高亮(类似firefox的搜索)
set incsearch

" 输入:set list命令是应该显示些啥?
set listchars=tab:
"|" ,trail:.,extends:>,precedes:<,eol:$

" 光标移动到buffer的顶部和底部时保持3行距离
set scrolloff
=3

" 不要闪烁
set novisualbell

" 我的状态行显示的内容(包括文件类型和解码)
set statusline
=%F%m%r%h%w" [FORMAT=%{&ff}]" [TYPE=%Y]" [POS=%l,%v][%p%%]" %{strftime(""%d/%m/%y" -" %H:%M"")}

" 总是显示状态行
set laststatus=2

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 文本格式和排版
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 自动格式化
set formatoptions=tcrqn

" 继承前一行的缩进方式,特别适用于多行注释
set autoindent

" 为C程序提供自动缩进
set smartindent

" 使用C样式的缩进
set cindent

" 制表符为4
set tabstop=4

" 统一缩进为4
set softtabstop
=4
set shiftwidth
=4

" 不要用空格代替制表符
set noexpandtab

" 不要换行
"set nowrap

"设置每行80个字符自动换行
set textwidth
=80

" 在行和段开始处使用制表符
set smarttab

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" CTags的设定
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 按照名称排序
let Tlist_Sort_Type = 
"name"

" 在右侧显示窗口
let Tlist_Use_Right_Window 
= 1

" 压缩方式
let Tlist_Compart_Format = 1

" 如果只有一个buffer,kill窗口也kill掉buffer
let Tlist_Exist_OnlyWindow 
= 1

" 不要关闭其他文件的tags
let Tlist_File_Fold_Auto_Close = 0

" 不要显示折叠树
let Tlist_Enable_Fold_Column 
= 1

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Autocommands
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 只在下列文件类型被侦测到的时候显示行号,普通文本文件不显示

if has("autocmd")
   autocmd FileType xml,html,c,cs,java,perl,shell,bash,cpp,python,vim,php,ruby set number
   autocmd FileType xml,html vmap 
<C-o> <ESC>'<i<!--<ESC>o<ESC>'>o-->
   autocmd FileType java,c,cpp,cs vmap 
<C-o> <ESC>'<o/*<ESC>'>o*/
   autocmd FileType html,text,php,vim,c,java,xml,bash,shell,perl,python setlocal textwidth
=80
   autocmd Filetype html,xml,xsl source $VIMRUNTIME
/plugin/closetag.vim
   autocmd BufReadPost 
*
      
" if line("'""") > 0 && line("'""") <= line("$") |
      
"   exe "normal g`""" |
      
" endif
endif 
" has("autocmd")

" C/C++的编译和运行
map <F5> :call CompileRunGcc()<CR>
func! CompileRunGcc()
exec 
"w"
exec 
"!make"
exec 
"! ./%<"
endfunc

" shell script运行
map 
<F6> :call CompileRunSH()<CR>
func
! CompileRunSH()
exec 
"w"
exec 
"!chmod a+x %"
exec 
"!./%"
endfunc

" python运行
map <F7> :call CompileRunPyhton()<CR>
func! CompileRunPyhton()
exec 
"w"
exec 
"!chmod a+%"
exec 
"!./%"
endfunc

" 能够漂亮地显示.NFO文件
set encoding
=utf-8
function! SetFileEncodings(encodings)
    let b:myfileencodingsbak
=&fileencodings
    let 
&fileencodings=a:encodings
endfunction
function! RestoreFileEncodings()
    let 
&fileencodings=b:myfileencodingsbak
    unlet b:myfileencodingsbak
endfunction

au BufReadPre 
*.nfo call SetFileEncodings('cp437')|set ambiwidth=single
au BufReadPost 
*.nfo call RestoreFileEncodings()

" 高亮显示普通txt文件(需要txt.vim脚本)
au BufRead,BufNewFile *  setfiletype txt

" 用空格键来开关折叠
set foldenable
set foldlevel
=0
set foldmethod
=indent
nnoremap 
<space> @=((foldclosed(line('.')) < 0? 'zc' : 'zo')<CR>

" minibufexpl插件的一般设置
let g:miniBufExplMapWindowNavVim = 1
let g:miniBufExplMapWindowNavArrows = 1
let g:miniBufExplMapCTabSwitchBufs = 1
let g:miniBufExplModSelTarget = 1

----------------------
一个相关帖子
http://forum.ubuntu.org.cn/viewtopic.php?f=68&t=138212&st=0&sk=t&sd=a

 

评论

相关推荐

    Linux系统中vim设置tab键的宽度

    资源名称:Linux系统中vim设置tab键的宽度资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。

    超强的vim设置代码

    超强的vim设置代码,总共800行,实现各种功能

    vim设置20130906, 适合编程爱好者

    每个插件的目录下的conf.vim中有更多的设置及说明 "FuzzyFinder fuf.vim模糊查找 source ~/.vim/bundle/fuzzyfinder/conf.vim "NERD_commenter.vim source ~/.vim/bundle/nerdcommenter/conf.vim "单独切换打开...

    Vim设置文件

    这篇博文主要探讨的是Vim的设置文件——`.vimrc`,它是Vim启动时读取的初始化脚本,用于设定各种快捷键、选项和行为。 首先,`.vimrc`文件是Vim的配置中心,通常位于用户的主目录下。在Linux和Unix系统中,这个文件...

    vim设置取消下划线 set cursorline

    jeffy-vim 很强的一个vim插件及配置 但安装之后出现下划线,那就需要进行设置, 可以在shell终端输入命令:vi ~/.vimrc 然后找到set cursorline 那一行,直接通过dd命令删除掉,退出保存即可

    vim颜色设置

    ### Vim颜色设置详解 #### 一、引言 在日常编程与文本编辑过程中,Vim 是一款非常强大的工具。为了提高工作效率以及个性化编辑环境,掌握 Vim 的颜色设置是非常必要的。本文将详细介绍 Vim 颜色设置的方法及步骤,...

    vim plugin vim changes to ide update

    **vimrc** 文件是Vim的配置文件,它是个人化Vim设置的核心。每个用户都可以根据自己的需求定制vimrc,包含快捷键绑定、颜色方案、自动缩进规则等。在这个上下文中,可能意味着更新vimrc以引入新添加的插件并优化它们...

    Ubuntu vim配置(很简单)

    下载vimconfig.tar.tgz,将文件拷贝到ubuntu, 执行下面命令: tar zxvf vimconfig.tar.tgz cd vimconfig cp .* ~/ -rvf 部分配置情况: "-------------TagList--------------- "设置ctags路径 let Tlist_Ctags_Cmd ...

    eric.vim:我的Vim设置

    **eric.vim: 我的Vim设置** `eric.vim` 是一个个人化的Vim配置集合,旨在提供一个易用且易于维护的环境。它包含了一系列精心挑选的插件、映射、设置和配置,以优化Vim的用户体验。通过这个配置,用户可以快速上手,...

    vim verilog自动化工具

    将压缩包解压后,将其中.vim/plugin/automatic.vim 拷贝到你home目录下相同目录中(.vim/plugin/),同时也拷贝.vim/after将home目录下.vim/, after目录下是一些图标,默认是linux平台下的图标。

    学习vi和vim编辑器.pdf_vim实用_vi_vim_

    用户可以通过`~/.vimrc`文件自定义vim设置,如设置颜色方案、快捷键映射、插件管理等,使vim更加符合个人习惯。 **七、学习资源** 1. Vimtutor:内置教程,通过`vimtutor`命令启动。 2. 官方文档:详尽的vim手册页...

    一个vim设置文件

    一个还算不错的vimrc文件, vim写C和c++代码必备,含ctag cscope, 窗口等快捷方式

    Linux vim 设置(附带各种最新插件),编程人员的利器

    适合对vimrc有所追求的人下载,各种插件在.vimrc中都有注释,但是.vimrc中有一些我工作上的设置,我没有去掉,直接上传也是为了在CSDN上有个备份。vimrc中的设置也是我一点一点积累下来的,许多也是参考他人的成就。...

    .vim:我的Vim设置

    我的VIM设置 这是我当前的VIM设置。 它由一堆插件,一些映射,颜色,字体和特定的VIM设置组成。 该设置非常以Python / reStructured Text为中心,因为这些是我使用的主要语言,但是可以轻松地适应其他语言。 C和...

    vim:我的简约Vim设置

    我的极简主义Vim设置我开始认为我必须发布此存储库。 有一天,我可能会四处走动,因为我必须使用别人的计算机。 如果我可以克隆此存储库以构建具有与我的Vim编辑器相同的功能和设置的Vim编辑器,对我来说将很方便。...

    xvim:我的个人 vim 设置

    Vim 自用的vim配置,适用于 Go与c++语言最小开发环境。 注:只在MacOS与Linux下VIM8+与NeoVim上测试验证过。配置参考了,在此感谢。 安装 Linux & MacOS # download xvim cd ~ git clone ...

    vim:我的 vim 设置

    **vim:我的 vim 设置** Vim 是一个高度可配置的文本编辑器,以其高效和强大的功能深受程序员和系统管理员喜爱。在深入探讨个人 Vim 设置之前,我们先了解一下 Vim 的基本概念。 1. **Vim 模式** - **正常模式...

    vim:Vim设置

    在这个"Vim设置"的主题下,我们将深入探讨如何配置和优化Vim以适应个人的工作习惯。 首先,Vim的配置主要通过一个名为`.vimrc`的启动配置文件进行。这个文件位于用户主目录下,用于定义Vim的行为、快捷键和插件设置...

    eclipse中加入vim

    5. **自定义Vim设置**:如果你是资深Vim用户,可能希望自定义更多设置。可以在Eclipse的“首选项”中找到Vrapper设置,添加自己的.vimrc配置文件路径,这样Eclipse会读取你的个性化设置。 6. **学习和适应**:由于...

Global site tag (gtag.js) - Google Analytics