"判定当前操作系统类型
if has("win32")||has("win95")||has("win64")||has("win16")
let g:iswindows=1
else
let g:iswindows=0
endif
set t_Co=256
set rtp+=~/.vim/bundle/vundle/,~/.vim/bundle/vim-golang/
"=========================================
"vim配置设置
"=========================================
"取消vi兼容
set nocompatible
"将底色设置为淡绿色
"highlight Normal guibg=#CCE8CF
"设置字体
set guifont=Monaco
"允许退格键使用
set backspace=indent,eol,start whichwrap+=<,>,[,]
"禁止备份
set nobackup
"显示行号
set number
"实时匹配搜索文本
set incsearch
"搜索时高亮现实被找到的文本
set hlsearch
"magic模式:除了$.*^之外其他元字符都要加反斜杠
set magic
"开启新行时使用智能自动缩进
set smartindent
"编辑过程中,右下角显示光标位置
set ruler
"自动检测文件类型并加载相应插件以及缩进
filetype plugin indent on
"关于缩进的相关说明
"shiftwidth(缩进的空格数)
"tabstop(制表符的宽度,只是把制表符的缩进量给改了,还是一个tab,所以跨平台时依旧会出现不一致)
"expandtab(是否在缩进和遇到Tab键时使用空格替代,主要是保证跨平台时缩进的一致性;使用noexpandtab取消设置)
"softtabstop(软制表符宽度,设置为非零数值后使用Tab键和Backspace时光标移动的格数等于该数值,但实际插入的字符仍受tabstop和expandtab控制)
"autoindent(自动缩进,即每行的缩进值与上一行相等;使用noautoindent取消设置)
set tabstop=8
set softtabstop=4
set shiftwidth=4
set expandtab
"设置显示编码
set enc=utf-8
"设置打开文件编码
set fencs=utf-8,GB18030
"设置开启语法高亮
syntax on
"设置leader键
let mapleader = ","
"智能补全
autocmd FileType python set omnifunc=pythoncomplete#Complete
autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS
autocmd FileType html set omnifunc=htmlcomplete#CompleteTags
autocmd FileType css set omnifunc=csscomplete#CompleteCSS
autocmd FileType xml set omnifunc=xmlcomplete#CompleteTags
autocmd FileType php set omnifunc=phpcomplete#CompletePHP
autocmd FileType c set omnifunc=ccomplete#Complete
autocmd FileType java set omnifunc=javacomplete#Complete
"F2显示或隐藏菜单栏
set guioptions-=m
set guioptions-=T
map <silent> <F2> :if &guioptions =~# 'T' <Bar>
\set guioptions-=T <Bar>
\set guioptions-=m <bar>
\else <Bar>
\set guioptions+=T <Bar>
\set guioptions+=m <Bar>
\endif<CR>
"=================================
"vim按键映射
"=================================
"映射按键:剪切版、全选,系统有效
vmap <C-c> "+y
vmap <C-x> "+x
nmap <C-v> "+gP
vmap <C-v> "+gP
nmap <C-a> ggVG
"某些terminal下的vim alt key映射需要转成^[的形式
"ctrl+v ESC即可输入^[
if has("gui_running")
"智能补全
imap <M-/> <C-X><C-N>
"insert模式下将光标移动到行尾
imap <M-;> <Esc><S-a>
"insert模式下的光标的左右移动
imap <M-h> <Left>
imap <M-l> <Right>
imap <M-k> <up>
imap <M-j> <down>
else
"智能补全
imap ^[/ <C-X><C-N>
"insert模式下将光标移动到行尾
imap ^[; <Esc><S-a>
"insert模式下的光标的左右移动
imap ^[h <Left>
imap ^[l <Right>
imap ^[k <up>
imap ^[j <down>
endif
"运行Python脚本的按键映射
map <F12> :!"python" %<CR>
"运行gcc编译
"在windows下配置,则需要在%<后面加上.exe
func Compile()
exec "w"
"C程序
if &filetype == 'c'
exec "!gcc -Wall -std=c99 % -g -lm -o %<"
"c++程序
elseif &filetype == 'cpp'
exec "!g++ -Wall -enable-auto-import % -g -lm -o %<"
"Java程序
elseif &filetype == 'java'
exec "!javac %"
endif
endfunc
"结束定义Compile
"定义Run函数
"./是当前目录,在windows下会报错
func Run()
if &filetype == 'c' || &filetype == 'cpp'
exec "!./%<"
elseif &filetype == 'java'
exec "!java %<"
elseif &filetype == 'go'
exec "!go run %"
endif
endfunc
"结束定义Run
"运行gcc编译并执行
"在windows下配置,则需要在%<后面加上.exe
func CompileRun()
exec "w"
"C程序
if &filetype == 'c'
exec "!gcc -Wall -std=c99 % -g -lm -o %<"
exec "!./%<"
"c++程序
elseif &filetype == 'cpp'
exec "!g++ -Wall -enable-auto-import % -g -lm -o %<"
exec "!./%<"
"Java程序
elseif &filetype == 'java'
exec "!javac %"
exec "!java %<"
"Go程序
elseif &filetype == 'go'
exec "!go run %"
endif
endfunc
"结束定义CompileRun
"定义Debug函数,用来调试程序
func Debug()
exec "w"
"C程序
if &filetype == 'c'
exec "!gcc -std=c99 % -g -lm -o %<"
exec "!gdb %<"
elseif &filetype == 'cpp'
exec "!g++ % -g -lm -o %<"
exec "!gdb %<"
"Java程序
elseif &filetype == 'java'
exec "!javac %"
exec "!jdb %<"
endif
endfunc
"结束定义Debug
"设置程序的运行和调试的快捷键
map <F9> :call Compile()<CR>
map <F10> :call Run()<CR>
map <F11> :call Debug()<CR>
map <F12> :call CompileRun()<CR>
"==================================
"ctags配置
"==================================
"当前目录找不到tag元文件,则向上查找
set tags=tags;
"设置当前目录为当前打开文件所在目录
set autochdir
"==================================
"taglist配置
"==================================
"不同时显示多个文件的tag,只显示当前文件的
let Tlist_Show_One_File=1
"如果taglist窗口是最后一个窗口,则退出vim
let Tlist_Exit_OnlyWindow=1
"==================================
"WinManager配置
"==================================
let g:NERDTree_title='NERD Tree'
let g:winManagerWindowLayout='NERDTree|TagList'
function! NERDTree_Start()
exec 'NERDTree'
endfunction
function! NERDTree_IsValid()
return 1
endfunction
"映射WinManager快捷键,在normal模式下按mt,控制开启和关闭
"nmap <silent> mt :WMToggle<CR>
nmap <silent> mt :if IsWinManagerVisible() <BAR> WMToggle<CR> <BAR> else <BAR> WMToggle<CR>:q<CR> endif <CR>
"设置WinManager宽度
let g:winManagerWidth = 40
"在进入vim时自动打开winmanager,打开=1,关闭=0
let g:AutoOpenWinManager = 0
"==================================
"Grep配置
"==================================
"直接按下<F3>键来查找光标所在的字符串:Grep插件
nnoremap <silent> <F3> :Rgrep<CR>
"=================================
"MiniBufExplorer配置
"=================================
"使用<C-Tab>向前循环切换到每个buffer上,并在当前窗口打开。<C-S-Tab>向后循环
"let g:miniBufExplMapCTabSwitchBufs = 1
"If you use other explorers like TagList you can
"let g:miniBufExplModSelTarget = 1
"关闭标签页
map <leader>c :CMiniBufExplorer<cr>
"=================================
"autocomplpop
"=================================
"acp是否自动开启,1=yes,0=no
let g:acp_enableAtStartup = 0
"mappigDriven防止单纯的鼠标移动造成搜索
let g:acp_mappingDriven = 1
"=================================
"neocomplcache配置
"=================================
"source neocomplcache.conf
"=================================
"vundle配置
"=================================
call vundle#rc()
Bundle 'gmarik/vundle'
"Bundle 'vim-plugin-foo'
"Bundle 'vim-plugin-bar'
Bundle 'Auto-Pairs'
Bundle 'bufexplorer.zip'
Bundle 'ctags.vim'
Bundle 'taglist.vim'
Bundle 'winmanager--Fox'
Bundle 'The-NERD-tree'
Bundle 'neocomplcache'
Bundle 'minibufexpl.vim'
Bundle 'https://github.com/abra/obsidian2.git'
Bundle 'https://github.com/bradfitz/goimports.git'
Bundle 'cespare/vim-golang'
colorscheme obsidian2
autocmd BufWritePre *.go :Fmt
分享到:
相关推荐
"vim配置的终极配置"这一主题,意味着我们将探讨如何根据个人需求和习惯,对Vim进行深度定制,以达到极致的使用体验。 在Vim中,配置主要通过.vimrc文件实现,这是一个启动时会被读取的脚本文件,用于设置各种选项...
"jeff-vim-read"显然是一款针对Vim配置的工具,旨在优化Vim的使用体验,提升开发效率。 在Vim中,配置文件通常称为`.vimrc`,它位于用户的主目录下。`.vimrc`文件包含了用户自定义的设置、快捷键映射、插件加载等...
描述中提到的"下载解压后,里面有一个脚本",这可能是一个自动化脚本,用于简化Vim配置的安装过程。通常,这样的脚本会包含以下步骤: 1. **复制或链接`.vimrc`**:将提供的配置文件复制到用户主目录,或者创建一个...
**vim配置备份详解** 在程序员和系统管理员的世界里,`vim`(Vi IMproved)是一款不可或缺的文本编辑器。它的强大功能和高度可定制性使其成为许多开发者的首选工具。`vim`的配置文件通常位于用户的家目录下,名为`....
以下是一些常见的VIM配置示例: 1. **颜色方案**:安装并启用一个你喜欢的颜色主题,例如使用`Plug 'chriskempson/base16-vim'`(如果你已安装VIM插件管理器如Vundle或NeoVim的 dein.vim)然后在`~/.vimrc`中添加`...
Vim是一款强大的文本编辑器,深受程序员和系统管理员的喜爱。它的可配置性是其一大亮点,用户可以通过自定义配置文件来优化编辑环境,提高工作效率。...记住,不断学习和优化Vim配置,能让编程体验更加高效愉快。
5. **插件管理**:Vim 的插件管理工具如 Vundle 或者 NeoBundle 可以方便地安装和更新插件。".vimrc" 可能包含了这些管理工具的配置,以及推荐的插件列表。 6. **文件类型检测与行为**:通过 `filetype` 和 `...
同时,参考高质量的Vim配置文件(vimrc)和相关课程,如《奔跑吧linux内核》的高清视频,可以助你从初学者进阶到高手。 总而言之,Vim 8通过持续改进和强大的社区支持,不仅挑战了IDE的界限,而且提供了一种更为...
### Linux服务器配置定时任务教程 #### 一、引言 Linux系统因其稳定性和安全性而被广泛应用于服务器领域。其中,定时任务是Linux服务器管理中一个非常实用的功能,它可以帮助我们自动执行一些周期性的任务,如数据...
Vim并不是一个排版程序,而是专注于文本编辑,在服务器管理和配置中尤为重要。它是一个功能强大的全屏幕文本编辑器,没有图形用户界面,只通过命令来实现各种编辑功能。尽管初学者可能会被其复杂的命令系统所困扰,...
**vim-use-backup: 自己vim使用与vim配置的一个记录** `vim-use-backup` 是一个个人关于 Vim 编辑器使用经验与配置记录的项目,主要以 Markdown 格式进行编写,方便阅读和分享。Markdown 是一种轻量级的标记语言,...
在IT领域,Linux系统是广泛使用的操作系统之一,而Debian作为Linux的一个稳定分支,深受...安装完成后,你可以通过运行`crontab -e`命令来配置Cron任务,通过`vim`命令启动Vim编辑器,开始你的系统管理和编码工作。
1. **内置异步I/O**:这是Vim 8.0最显著的更新之一,允许在后台执行任务,如文件读写、系统命令和插件更新,而不会阻塞用户界面。 2. **多窗口支持**:除了单个缓冲区外,Vim 8.0支持同时处理多个窗口,便于在同一份...
Linux 环境下部署 FTP 服务器并配置定时对 FTP 中的文件进行备份 本资源详细介绍了在 Linux 环境下部署 FTP 服务器并配置定时对 FTP 中的文件进行备份的步骤。FTP 服务器是文件传输协议服务器,允许用户通过网络...
`.vimrc`文件是Vim的启动配置文件,它包含了各种命令、映射、选项和设定,使得每次打开Vim时都会按照这些设定运行。 在深入讨论`.vimrc`之前,我们需要了解Vimscript,这是用于编写Vim插件和配置文件的脚本语言。...
它的配置文件是`crontab`,用户可以通过编辑`crontab`文件来定制自己的定时任务。 要创建定时任务,首先需要打开终端并输入`crontab -e`命令,这会打开一个编辑器(通常是vi或vim)。在编辑器中,你可以按照特定的...
8. `/etc/crontab`:定时任务配置,用于定期执行脚本或命令。 9. `/etc/inittab`(在System V init系统中)或`/etc/systemd/system`(在Systemd系统中):定义系统启动时的运行级别和服务启动顺序。 三、配置文件...
vim /root/mysql_backup.sh ``` 2. **编辑脚本内容**: 在脚本中,我们将使用`mysqldump`命令来导出MySQL数据库,并通过`gzip`进行压缩。此外,还需要使用`find`命令来查找并删除旧的备份文件。具体脚本内容如下...
下面是一些常见的vim配置示例,这些设置将有助于提升你的编程体验: 1. **颜色主题**:通过`colorscheme`命令,你可以选择一个符合个人喜好的颜色主题,例如: ``` colorscheme desert ``` 2. **自动缩进**:...