我的vim配置脚本
自己的VIM 配置脚本,拥有自主独立知识产权(参考了一点别人的),只使用了一个插件ctags ,主要实现了一下功能:
- 自动补全括号,双引号,单引号,包括{},(),"" , ''只要输入符号的左边部分,自动补全,并以插入模式自动将光标移动到符号内部
- 在{},() 内部按下Enter键,自动换两行,并将光标移动到两行中的第一行,并完成自动缩进
- 命令模式下,快捷键"s",保存文件,保存文件的同时,自动刷新tags,按下ctrl+]和ctrl+t 实现函数 ,结构体 , 类的自动跳转和返回。
- 命令模式下,快捷键"q",退出VIM
- 在插入模式,光标右边是},),",',按下Tab键自动跳出该符号,如果不知这些符号,完成缩进动作
- 在命令模式,按下"t",列出所有打开的文件
- 在命令模式,按下";",调出命令输入行
- 在命令模式,按下<- 和->可以在打开的Buffer之间切换
- 可以用鼠标点击
- 高亮光标所在行
- 状态高亮显示当前打开文件信息
- F4关闭当前Buffer
其他更复杂的配置,以后慢慢补充
"设置帮助文档为中文
set helplang=cn "设置编码
set fileencodings=utf-,gb2312,gb18030,gbk,ucs-bom,cp936,latin1 "高亮显示
syntax enable
syntax on "显示行数
set number "设置tab键
set tabstop= "设置缩进
set softtabstop=
set shiftwidth= "设置自动缩进
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(".") - ]
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(".") - ]
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= " 总是显示状态栏
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()}
我的vim配置脚本的更多相关文章
- Linux : Vim 使用与配置 (附 GitHub 自动化配置脚本)
由于经常使用 vim 编辑配置文件,有时候也会进行使用vim 编写一些脚本和c/c++ 程序,所以配置一个常用的 vim 是很是必要的.这篇博文主要是记录vim使用和配置相关的一些知识点. 关于vim ...
- 简单快捷好用的vim配置和终端配置推荐
vim 配置实用spf13-vim,安装方便简单快捷,极力推荐. 另外oh-my-zsh 终端配置很好,与之搭配使用效果更佳. 安装都很简单,一个脚本搞定, 都是在gitHub上开源的,自行搜索,这里 ...
- VIM配置相关记录
把一直使用中的vim配置做个GIT入库管理,也把之前积累在机器上的文档,做个汇总. https://github.com/wujuguang/kyvim 1. 安装完整版vim vi和vim的区别?在 ...
- Vim配置及说明——IDE编程环境
Vim配置及说明——IDE编程环境 Vim配置及说明——IDE编程环境 1.基本及字体 2.插件管理 3.主题风格 4.窗口设置 5.目录树导航 6.标签导航 7.taglist 8.多文档编辑 9. ...
- Env:VIM配置
注:文章来自于http://www.cnblogs.com/ma6174/archive/2011/12/10/2283393.html 花了很长时间整理的,感觉用起来很方便,共享一下. 我的vim配 ...
- VIM配置(转载)
注: 转载于http://www.cnblogs.com/ma6174/ 花了很长时间整理的,感觉用起来很方便,共享一下. 我的vim配置主要有以下优点: 1.按F5可以直接编译并执行C.C++.ja ...
- vim配置(vimplus)
vim配置(vimplus) vimplus vimplus是vim的超级配置安装程序 github地址:https://github.com/chxuan/vimplus.git,欢迎star和fo ...
- Vim配置及使用技巧
要说Linux下比较好用的文本编辑器,我推荐vim(当然很多人都用emacs,可我没用过),用vim也有一年左右,有些心得体会想与诸位分享.在我的学习过程中,借鉴了不少优秀的博客,其中有csdn大神n ...
- Mac 下VIM配置
Mac下VIM配置 首先,我们去这里下载MacVim,也可用这个网址:(http://code.google.com/p/macvim/),进入后的界面如下: ____________________ ...
随机推荐
- git —— 远程仓库(创建)
一.SSH设置 1.创建SSH Key 在用户主目录下,看看有没有.ssh目录, 如果有,再看看这个目录下 有没有id_rsa和id_rsa.pub这两个文件, 如果已经有了,可直接 跳到下一步. 如 ...
- No.7 selenium学习之路之Alert弹窗
Alert弹窗 弹窗是用工具选不到的~ 切换到alert driver.switch_to_alert() 新的语法:driver.switch_to.alert 注:新的语法不需要后面加括号 打印a ...
- delphi TComponent类(1)
来自:http://blog.csdn.net/lailai186/article/details/7442383 ------------------------------------------ ...
- ZooKeeper常见问题
转载自原文:zookeeper(二)常见问题汇总 一.为什么zookeeper要部署基数台服务器? 所谓的zookeeper容错是指,当宕掉几个zookeeper服务器之后,剩下的个数必须大于宕掉的个 ...
- python 统计MySQL表信息
一.场景描述 线上有一台MySQL服务器,里面有几十个数据库,每个库有N多表. 现在需要将每个表的信息,统计到excel中,格式如下: 库名 表名 表说明 建表语句 db1 users 用户表 CRE ...
- 从exp入手分析漏洞
分析poc和分析exp有一些不一样,因为exp是人为构造后的东西,它会执行一段自定的shellcode.结果是根本不会触发异常或者异常在离触发点十万八千里的地方.这样分析poc的技巧就用不上了(因为无 ...
- Nginx 虚拟主机 VirtualHost 配置
Nginx 是一个轻量级高性能的 Web 服务器, 并发处理能力强, 对资源消耗小, 无论是静态服务器还是小网站, Nginx 表现更加出色, 作为 Apache 的补充和替代使用率越来越高. 我在& ...
- 一步一步学习IdentityServer3 (14) 启用Https
申领一个CA证书,我用了一个腾讯的免费证书night-c.cn,这是腾讯云买域名送的一个证书 是单域名,非泛域名 1:安装证书 IIS选择证书 2:将证书加载到Identityserver3中,并启 ...
- java中举例说明对象调用静态成员变量
package org.hanqi.zwxx; public class Test { static int i=47; public void call() { System.out.println ...
- 使用Kafka、Elasticsearch、Grafana搭建业务监控系统(三)Elasticsearch
https://blog.csdn.net/tonywu1992/article/details/83576863