前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >vim配置

vim配置

作者头像
超级大猪
发布2019-11-22 09:38:33
6850
发布2019-11-22 09:38:33
举报
文章被收录于专栏:大猪的笔记大猪的笔记

vim配置

vim大杀器开始玩啦。

安装vim最新版

代码语言:javascript
复制
# sudo apt-get install software-properties-common
sudo add-apt-repository ppa:jonathonf/vim
sudo apt-get update && sudo apt-get install vim

#在mac 中
brew install vim
#修改配置文件
alias vim='/usr/local/bin/vim'
alias vi='/usr/local/bin/vim'

# 检查是否有clipboard的支持
vim --version | grep clipboard # 如果显示 +clipboard则有,否则无
# 安装vim-gui-common,如果没有+clipboard支持的话
apt install vim-gui-common

# 在windows安装 xming xserver并在xshell配置隧道

安装vendle插件

代码语言:javascript
复制
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim

编辑配置文件

代码语言:javascript
复制
" 剪贴板设为系统
set clipboard=unnamed
" 打开鼠标控制
set mouse=a
set backspace=2
filetype off                  " required"
runtime! debian.vim
" 开始插件配置啦
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
Plugin 'ctrlpvim/ctrlp.vim'
Plugin 'majutsushi/tagbar'
Plugin 'scrooloose/nerdtree'
Plugin 'jiangmiao/auto-pairs'
Plugin 'fatih/vim-go'
Plugin 'scrooloose/syntastic'
Plugin 'mileszs/ack.vim'

call vundle#end() " required "
filetype plugin indent on " required "

if has("syntax")
    syntax on
endif

" 自动删除多余空格
" From: Vigil <vim5632@rainslide.net>"
function RemoveTrailingWhitespace()
    if &ft != "diff"
        let b:curcol = col(".")
        let b:curline = line(".")
        silent! %s/\s\+$//
        silent! %s/\(\s*\n\)\+\%$//
        call cursor(b:curline, b:curcol)
    endif
endfunction
autocmd BufWritePre * call RemoveTrailingWhitespace()

set ts=4
set sw=4

set nu
set autoindent
let mapleader=";"
highlight ExtraWhitespace ctermbg=red guibg=red
autocmd BufWinEnter * match ExtraWhitespace /\s\+$\| \+\ze\t\+\|\t\+\zs \+/

let g:ctrlp_map = '<c-p>'
let g:ctrlp_cmd = 'CtrlP'
let g:ctrlp_custom_ignore = '\v[\/]\.(git|hg|svn|pyc)$'
nmap <F8> :TagbarToggle<CR>
map <F10> :NERDTreeToggle<CR>
let g:NERDTreeWinSize = 20

let NERDTreeIgnore = ['.*\.o$','.*\.ko$','.*\.gz$','.*\.pyc$']

" 设置vim-go跳转定义,;gd
nnoremap <leader>gd :GoDef <CR>
" . 后面自动弹出代码提示
au filetype go inoremap <buffer> . .<C-x><C-o>
" ctrl-z 自动弹出代码提示
imap <c-z> <c-x><c-o>
" 只弹出代码提示,不补全
set completeopt=longest,menuone

" 语法检查插件的配置
let g:syntastic_error_symbol='>>'
let g:syntastic_warning_symbol='>'
let g:syntastic_check_on_open=1
let g:syntastic_check_on_wq=0
let g:syntastic_enable_highlighting=1
let g:syntastic_python_checkers=['pyflakes'] " 使用pyflakes,速度比pylint快
let g:syntastic_javascript_checkers = ['jsl', 'jshint']
let g:syntastic_html_checkers=['tidy', 'jshint']
" 修改高亮的背景色, 适应主题
highlight SyntasticErrorSign guifg=white guibg=black

" to see error location list
let g:syntastic_always_populate_loc_list = 0
let g:syntastic_auto_loc_list = 0
let g:syntastic_loc_list_height = 5
function! ToggleErrors()
let old_last_winnr = winnr('$')
lclose
if old_last_winnr == winnr('$')
" Nothing was closed, open syntastic error location panel
        Errors
    endif
endfunction
nnoremap <Leader>s :call ToggleErrors()<cr>

"默认打开NERDTree
func StartNerdTree()
    if &filetype == 'py'||&filetype == 'python'||&filetype == 'go'
        NERDTree
    endif
endfunc
autocmd vimenter * call StartNerdTree()

" vim tab,使用 ;1 ;2跳tab
noremap <leader>1 1gt
noremap <leader>2 2gt
noremap <leader>3 3gt
noremap <leader>4 4gt
noremap <leader>5 5gt
noremap <leader>6 6gt
noremap <leader>7 7gt
noremap <leader>8 8gt
noremap <leader>9 9gt

inoremap jj <Esc>

noremap cp yap<S-}>p

noremap <S-l> gt
noremap <S-h> gT

noremap <leader>a =ip

nnoremap <leader>s :w<cr>
inoremap <leader>s <C-c>:w<cr>

安装YouCompleteMe

代码语言:javascript
复制
cd ~/.vim/bundle/YouCompleteMe/
python install.py
# 如果报cmake
# sudo apt-get install CMake
# 如果报python找不到,安装
# sudo apt-get install vim-nox # vim python支持
# sudo apt-get install python-dev python3-dev
# 如果报c++解释器不支持c++11。装个g++
# apt-get install g++

到YouCompleteMe下,新建

代码语言:javascript
复制
cpp/ycm/.ycm_extra_conf.py

内容

代码语言:javascript
复制
https://github.com/Valloric/ycmd/blob/master/cpp/ycm/.ycm_extra_conf.py

默认检查的是CPP,要检查C需要修改一下。 python项目要加进Pythonpath,否则包可能找不到定义:

代码语言:javascript
复制
export PYTHONPATH=$PYTHONPATH:/home/yzh/yinzihao/workspace/qb_games/

vim教程

tab 的用法

  1. 创建新tab tabnew
  2. 把当前tab移动到最后 tabm 最前 tabr
  3. 关闭其它 tabo
  4. 切换 gt

CtrlP 用法

新tab打开 c+t

NERDTreeToggle用法

代码语言:javascript
复制
ctrl + w + w    光标自动在左右侧窗口切换
ctrl + w + r    移动当前窗口的布局位置
o       在已有窗口中打开文件、目录或书签,并跳到该窗口
t       在新 Tab 中打开选中文件/书签,并跳到新 Tab
O       递归打开选中 结点下的所有目录
x       合拢选中结点的父目录
X       递归 合拢选中结点下的所有目录
e       Edit the current dif
D       删除当前书签
p       跳到父结点
C       将选中目录或选中文件的父目录设为根结点
u       将当前根结点的父目录设为根目录,并变成合拢原根结点
U       将当前根结点的父目录设为根目录,但保持展开原根结点
r       递归刷新选中目录
R       递归刷新根结点
m       显示文件系统菜单
cd      将 CWD 设为选中目录
I       切换是否显示隐藏文件
f       切换是否使用文件过滤器
F       切换是否显示文件
B       切换是否显示书签
q       关闭 NerdTree 窗口
?       切换是否显示 Quick Help
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-02-08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • vim配置
    • 安装vim最新版
      • 安装vendle插件
        • 编辑配置文件
          • 安装YouCompleteMe
          • vim教程
            • tab 的用法
              • CtrlP 用法
                • NERDTreeToggle用法
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档