我的vim配置脚本

  自己的VIM 配置脚本,拥有自主独立知识产权(参考了一点别人的),只使用了一个插件ctags ,主要实现了一下功能:

  • 自动补全括号,双引号,单引号,包括{},(),"" , ‘‘只要输入符号的左边部分,自动补全,并以插入模式自动将光标移动到符号内部
  • 在{},() 内部按下Enter键,自动换两行,并将光标移动到两行中的第一行,并完成自动缩进
  • 命令模式下,快捷键"s",保存文件,保存文件的同时,自动刷新tags,按下ctrl+]和ctrl+t 实现函数 ,结构体 , 类的自动跳转和返回。
  • 命令模式下,快捷键"q",退出VIM
  • 在插入模式,光标右边是},),",‘,按下Tab键自动跳出该符号,如果不知这些符号,完成缩进动作
  • 在命令模式,按下"t",列出所有打开的文件
  • 在命令模式,按下";",调出命令输入行
  • 在命令模式,按下<- 和->可以在打开的Buffer之间切换
  • 可以用鼠标点击
  • 高亮光标所在行
  • 状态高亮显示当前打开文件信息
  • F4关闭当前Buffer

其他更复杂的配置,以后慢慢补充

"设置帮助文档为中文
set helplang=cn

"设置编码
set fileencodings=utf-8,gb2312,gb18030,gbk,ucs-bom,cp936,latin1

"高亮显示
syntax enable
syntax on

"显示行数
set number  

"设置tab键
set tabstop=4

"设置缩进
set softtabstop=4
set shiftwidth=4

"设置自动缩进
set autoindent
set cindent

"不产生swap文件和备份文件
set noswapfile
set nobackup

"设置检查拼写(感觉用着没有啥子效果)
"set spell

"显示光标所在行号
set cursorline

"显示光标所在行号和列号
set ruler

"鼠标可以在buffer中点击
set mouse=a
set showmode

"高亮搜索关键字
set hlsearch
"智能搜索
set incsearch

"搜索忽略大小写
set ignorecase

"显示输入的命令
set showcmd

"打开文件类型检测
filetype on
filetype plugin on

"设置常用符号自动补全(注意:inore是指 vim的各种工作模式)
inoremap ( ()<ESC>i
inoremap [ []<ESC>i
inoremap " ""<ESC>i
inoremap ‘ ‘‘<ESC>i
inoremap { {}<ESC>i

"自定义快捷键(注意这里的<cr>表示字符’<‘c‘‘r’>,在配置脚本中等同于Enter键)
"保存和退出
nmap s :w<cr>
nmap q :q<cr>

"使用左右方向键在不同buffer之间的切换
nmap <Left> :bp<CR>
nmap <Right> :bn<CR>

"F4关闭当前buffer
nmap <F4>    :bd<CR>
nmap f :e 

"在打开的文件之间互相切换
nmap t :ls<cr>
nmap b :b
nmap ; :

"在编辑模式下,按下‘{‘或‘(‘,括号将自动补全,光标移动到括号中,如果按下‘Enter‘键,实现自动换行并缩进
inoremap <CR> <C-R>=Enterskip()<CR>
function Enterskip()
let char = getline(".")[col(".") - 1]
if char == ‘}‘ || char == ‘)‘
return "\<CR>\<ESC>O"
else
return "\<CR>"
endif
endf

"在编辑模式下,如果在当光标右边是下面这些符号,按下‘Tab‘键,自动跳出括号,反之正常的tab键功能
inoremap <Tab> <C-R>=Tabskip()<CR>
function Tabskip()
let char = getline(".")[col(".") - 1]
if char == ‘}‘ || char == ‘]‘ || char == ‘"‘ || char == ‘>‘ || char == ‘)‘ || char == "‘"
return "\<Right>"
else
return "\<Tab>"
endif
endf

"待定脚本(还没搞明白的脚本)
"inoremap ] <c-r>=ClosePair(‘]‘)<CR>(这条脚本待定)
"inoremap < <><LEFT>
"inoremap * **<LEFT>
"只针对c,cpp文件才使用大括号跨行自动补全功能
"inoremap ) <c-r>=ClosePair(‘)‘)<CR>
"autocmd FileType c,cpp,go inoremap { {<CR>}<ESC>O
"针对sh 文件使用大括号当前行自动补全功能
"autocmd FileType sh inoremap { {}<ESC>i
"inoremap } <c-r>=ClosePair(‘}‘)<CR>

"function! ClosePair(char)
"    if getline(‘.‘)[col(‘.‘) - 1] == a:char
"        return "\<Right>"
"    else
"        return a:char
"    endif
"endfunction

"ctags 自动补全(每次保存文件的时候执行ctags -R)
"--languages=c++,c,java,Make,Sh, 就是制定了本次ctags扫描的语言是什么
"--c++-kinds=+px 指示ctags扫描一些函数声明
autocmd BufWritePost * call system("ctags --tag-relative=yes -f ~/.tagsdir/tags -R --languages=c++,c,Java,Make,Sh, --c++-kinds=+px --fields=+aiKSz --extra=+q")
"autocmd BufWritePost * call system("ctags --tag-relative=yes -f /home/satan/.tagsdir/tags -R *")

"因为每次保存文件的时候,都会刷新tags文件,但是都是在文件所在文件的当前文件夹下刷新,这样下次使用跳转的时候,会出现多个选择,所以直接指定一个tags生成的文件夹
set tags=/home/satan/.tagsdir/tags
set autochdir

" 在状态栏显示当前文件的相关信息
set laststatus=2      " 总是显示状态栏
highlight StatusLine cterm=bold ctermfg=black ctermbg=yellow
" 获取当前路径,将$HOME转化为~
function! CurDir()
    let curdir = substitute(getcwd(), $HOME, "~", "g")
    return curdir
endfunction
set statusline=[%n]\ %f%m%r%h\ \|\ \ pwd:\ %{CurDir()}\ \ \|%=\|\ %l,%c\ %p%%\ \|\ ascii=%b,hex=%b%{((&fenc==\"\")?\"\":\"\ \|\ \".&fenc)}\ \|\ %{$USER}\ @\ %{hostname()}

原文地址:https://www.cnblogs.com/big-devil/p/8486185.html

时间: 2024-10-31 00:20:41

我的vim配置脚本的相关文章

ubuntu的vim配置脚本

vim的配置,个人觉得对于新手会有一定的帮助,因为本人也是新手,大牛请忽略. 当我们刚刚装好ubuntu的时候可能还没有vim,只能用vi.vim是vi的升级版.对于新手vim编辑器会很不习惯,但是我们一定要努力的去适应它. 好了,废话不说,开始安装吧. 在确定能上网的情况下,我们用apt安装(大家都知道用apt安装比较方便,不用考虑依赖文件).在命令行输入sudo apt-get install vim  ,回车键安装.这简单输入密码无脑安装.然后你在命令行输入比如:vim test.c ,敲

vim 编写脚本时自动配置添加版权信息

在编写脚本时,可添加版权信息,以便脚本的最大实用性,也是个人劳动所在 下面是vim 编写脚本时自动配置添加版权信息 在用户的家目录下(一般是root目录)编辑.vimrc(注意是隐藏文件) 编辑以下内容        (若以下内容复制格式有问题,请将附件的vimrc拷贝并改名为.vimrc) map <F4> :call TitleDet()<cr>function AddTitle()    call append(0,"\#!/bin/bash")    

vim 配置

1 此vim配置有以下优点: 2 3 1,按F5可以直接编译并执行C.C++.java代码以及执行shell脚本,按“F8”可进行C.C++代码的调试 4 2,自动插入文件头 ,新建C.C++源文件时自动插入表头:包括文件名.作者.联系方式.建立时间等,读者可根据需求自行更改 5 3,映射“Ctrl + A”为全选并复制快捷键,方便复制代码 6 4,按“F2”可以直接消除代码中的空行 7 5,“F3”可列出当前目录文件,打开树状文件目录 8 6,支持鼠标选择.方向键移动 9 7,代码高亮,自动缩

vim配置

vim配置 前言 vim和emacs是linux环境下的文本编辑利器,关于vim和emacs谁更优秀的话题从来没有断过,我在这里就不再评判了,vim是linux下的默认编辑器,学好了vim将会一生受用,我之前学vim是在网上找的一些资料,读博客之类的,使用了几年vim始终感觉没有什么大的进步,后来在vim官网看到vim书籍推荐,其中一本就是<vim实用技巧>,后来果断在京东上买了一本,除了宏相关的没怎么看以外,其他的都看了,加上自己的实际操作,感觉vim技术又上了一个层次,<vim实用技

Linux 的vim 配置

一.vim介绍 Vim是一个类似于Vi的著名的功能强大.高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性.VIM是纯粹的自由软件. vim常用的三种命令模式: 1.命令模式(command mode) 输入 vim test.c 会直接进入命令行模式,输入i,进入插入模式. 2.插入模式(Insert mode) 按ESC,进入命令行模式 : w (保存当前文件) : wq (保存并退出vim) : q! (强制退出vim) 3.底行模式(last line mode) 二.vim配置

vim配置的初级道路---打造属于自己的Vim

1.vim是linux程序员编程的上古神器 Vim是Linux系统上的最著名的文本/代码编辑器,也是早年的Vi编辑器的加强版,被誉为文本/代码编辑器之中最为优秀经典的上古神器. 它之所以会获得如此美誉,我想主要有以下原因:1.它古老而神秘,学习曲线陡峭,难以驾驭,但是一旦学会则受益匪浅.如今被看作是高手.Geek们专用的编辑器.所以尽管 Vim 已经是古董级的软件,但还是有无数新人迎着困难去学习使用. 2.轻便,无需多言,当仅仅只需要对某一文本文件(比如脚本代码.配置文件)进行简单的编辑的时候,

linux篇——centOs下的vim配置

一.配置vim的好处 进行vim配置,可以让我们在后续敲代码更加方便.按F5可以直接编译并执行C.C++代码以及执行shell脚本:按"F8"可进行C.C++代码的调试:"Ctrl + A"为全选并复制快捷键,方便复制代码:按"F2"可以直接消除代码中的空行:F3"可列出当前目录文件,打开树状文件目录:支持代码高亮,自动缩进,显示行号,显示状态行:按"Ctrl + P"可自动补全等等. 二.配置vim (1)下载vi

Mac 下VIM配置

Mac下VIM配置 首先,我们去这里下载MacVim,也可用这个网址:(http://code.google.com/p/macvim/),进入后的界面如下: _______________________________________________________________________ Download Download MacVim 7.3 (snapshot 65) for OS X 10.8 (Mountain Lion). (Released September 1, 2

分享一下我的vim配置

这是我长时间使用vim总结的一些配置,分享给有需要的人.可以支持编译一键编译并执行C.C++和Java(需要安装编译器并配置环境变量),具体的使用方法,在下面的配置文件中讲的很详细.另外,在Linux上默认使用的clang的编译器,这种编译器可以兼容gcc的大部分选项,并且编译速度更快,提示更加友好,您也可以根据自己的需要改成自己喜欢的编译器. 我是在Windows7下测试的,所以Windows7系统直接可用.其中的插件与配置文件在 Linux 下同样适用.如果您是XP的用户,可能会出现Cons