我的vim设置

 用户 vimrc 文件配置:

touch $HOME/.vimrc
"或者
touch ~/.vimrc
""显示行号
set nu
""开启高亮
syntax on
""突出显示当前行
set cursorline
""启用鼠标
set mouse=a
set selection=exclusive
set selectmode=mouse,key
""显示状态栏
set laststatus=2
""智能补全
set completeopt=longest,menu
""显示光标当前位置
set ruler
set rtp+=~/.vim/bundle/Vundle.vim

""Vim 在与屏幕/键盘交互时使用的编码(取决于实际的终端的设定)
set encoding=utf-8
set langmenu=zh_CN.UTF-8
""设置打开文件的编码格式
set fileencodings=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1
set fileencoding=utf-8
""解决菜单乱码
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
""设置中文提示
language messages zh_CN.utf-8
""设置中文帮助
set helplang=cn
""设置为双字宽显示,否则无法完整显示如:☆
set ambiwidth=double


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"""""新文件标题
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"新建.c,.h,.sh,.java文件,自动插入文件头 
autocmd BufNewFile *.cpp,*.[ch],*.sh,*.java exec ":call SetTitle()" 
""定义函数SetTitle,自动插入文件头 
func SetTitle() 
	"如果文件类型为.sh文件 
	if &filetype == 'sh' 
		call setline(1, "##########################################################################") 
		call append(line("."), "# File Name: ".expand("%")) 
		call append(line(".")+1, "# Author: amoscykl") 
		call append(line(".")+2, "# mail: amoscykl980629@163.com") 
		call append(line(".")+3, "# Created Time: ".strftime("%c")) 
		call append(line(".")+4, "#########################################################################") 
		call append(line(".")+5, "#!/bin/zsh")
		call append(line(".")+6, "PATH=/home/edison/bin:/home/edison/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/work/tools/gcc-3.4.5-glibc-2.3.6/bin")
		call append(line(".")+7, "export PATH")
		call append(line(".")+8, "")
	else 
		call setline(1, "/*************************************************************************") 
		call append(line("."), "	> File Name: ".expand("%")) 
		call append(line(".")+1, "	> Author: amoscykl") 
		call append(line(".")+2, "	> Mail: amoscykl@163.com ") 
		call append(line(".")+3, "	> Created Time: ".strftime("%c")) 
		call append(line(".")+4, " ************************************************************************/") 
		call append(line(".")+5, "")
	endif
	if &filetype == 'cpp'
		call append(line(".")+6, "#include<iostream>")
    	call append(line(".")+7, "using namespace std;")
		call append(line(".")+8, "")
	endif
	if &filetype == 'c'
		call append(line(".")+6, "#include<stdio.h>")
		call append(line(".")+7, "")
	endif
	"	if &filetype == 'java'
	"		call append(line(".")+6,"public class ".expand("%"))
	"		call append(line(".")+7,"")
	"	endif
	"新建文件后,自动定位到文件末尾
	autocmd BufNewFile * normal G
endfunc 
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"键盘命令
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
 
nmap <leader>w :w!<cr>
nmap <leader>f :find<cr>
 
" 映射全选+复制 ctrl+a
map <C-A> ggVGY
map! <C-A> <Esc>ggVGY
map <F12> gg=G
" 选中状态下 Ctrl+c 复制
vmap <C-c> "+y




call vundle#begin()
""所有要安装的插件,写在下面""

""Vundle.vim插件管理器
Plugin 'gmarik/Vundle.vim'
""目录树
Plugin 'scrooloose/nerdtree'
""主题
Plugin 'altercation/vim-colors-solarized'
""标签导航
Plugin 'majutsushi/tagbar'
""标签列表
Plugin 'vim-scripts/taglist.vim'
""代码动态检查
Plugin 'w0rp/ale'
""快速添加/删除注释
Plugin 'scrooloose/nerdcommenter'

call vundle#end()


"""""""""""""""""""""""""""""""""NERDTree目录树插件配置"""""""""""""""""""""""""""""""""""""""""""""""""
let NERDTreeHighlightCursorline = 1       " 高亮当前行
let NERDTreeShowLineNumbers     = 1       " 显示行号
""忽略列表中的文件
let NERDTreeIgnore = [ '\.pyc$', '\.pyo$', '\.obj$', '\.o$', '\.egg$', '^\.git$', '^\.repo$', '^\.svn$', '^\.hg$' ]
""启动 vim 时打开 NERDTree
autocmd vimenter * NERDTree
""当打开 VIM,没有指定文件时和打开一个目录时,打开 NERDTree
autocmd StdinReadPre * let s:std_in = 1
autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif
autocmd VimEnter * if argc() == 1 && isdirectory(argv()[0]) && !exists("s:std_in") | exe 'NERDTree' argv()[0] | wincmd p | ene | exe 'cd '.argv()[0] | endif
" 关闭 NERDTree,当没有文件打开的时候
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTreeType") && b:NERDTreeType == "primary") | q | end
 
""<leader>nt 打开 nerdtree 窗口,在左侧栏显示
map <leader>nt :NERDTreeToggle<CR> 
""将F2设置为开关NERDTree的快捷键
map <f2> :NERDTreeToggle<cr>
""修改树的显示图标
"let g:NERDTreeDirArrowExpandable = '+'
"let g:NERDTreeDirArrowCollapsible = '-'
""窗口位置
"let g:NERDTreeWinPos='left'
""窗口尺寸
"let g:NERDTreeSize=30
""窗口是否显示行号
let g:NERDTreeShowLineNumbers=1
""不显示隐藏文件
"let g:NERDTreeHidden=0


""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"""""""""""""""""""""""""""""""""""""""""""""""""主题"""""""""""""""""""""""""""""""""""""""""""""""""
let g:solarized_termtrans  = 1        " 使用 termnal 背景
let g:solarized_visibility = "high"   " 使用 :set list 显示特殊字符时的高亮级别
 
" GUI 模式浅色背景,终端模式深色背景
if has('gui_running')
    set background=light
else
    set background=dark
endif
  
" 主题设置为 solarized
colorscheme solarized
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"""""""""""""""""""""""""""""""""""""""标签导航tagbar配置"""""""""""""""""""""""""""""""""""""""""""""""



let g:tagbar_ctags_bin = 'ctags' " tagbar 依赖 ctags 插件
let g:tagbar_width     = 30      " 设置 tagbar 的宽度为 30 列,默认 40 列
let g:tagbar_autofocus = 1       " 打开 tagbar 时光标在 tagbar 页面内,默认在 vim 打开的文件内
let g:tagbar_left      = 1       " 让 tagbar 在页面左侧显示,默认右边
"let g:tagbar_sort      = 0       " 标签不排序,默认排序
 
" <leader>tb 打开 tagbar 窗口,在左侧栏显示
map <leader>tb :TagbarToggle<CR>
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"""""""""""""""""""""""""""""""""""""""""""ale代码动态检查""""""""""""""""""""""""""""""""""""""""""""""
""常用快捷键""
""<F9>	触发/关闭代码动态检查
""ak	前往上一个错误或警告
""aj	前往下一个错误或警告
""ad	查看错误或警告的详细信息

let g:ale_lint_on_text_changed       = 'normal'                     " 代码更改后启动检查 
let g:ale_lint_on_insert_leave       = 1                            " 退出插入模式即检查
let g:ale_sign_column_always         = 1                            " 总是显示动态检查结果
let g:ale_sign_error                 = '>>'                         " error 告警符号
let g:ale_sign_warning               = '--'                         " warning 告警符号
let g:ale_echo_msg_error_str         = 'E'                          " 错误显示字符
let g:ale_echo_msg_warning_str       = 'W'                          " 警告显示字符
let g:ale_echo_msg_format            = '[%linter%] %s [%severity%]' " 告警显示格式
 
" C 语言配置检查参数
let g:ale_c_gcc_options              = '-Wall -Werror -O2 -std=c11'
let g:ale_c_clang_options            = '-Wall -Werror -O2 -std=c11'
let g:ale_c_cppcheck_options         = ''
" C++ 配置检查参数
let g:ale_cpp_gcc_options            = '-Wall -Werror -O2 -std=c++14'
let g:ale_cpp_clang_options          = '-Wall -Werror -O2 -std=c++14'
let g:ale_cpp_cppcheck_options       = ''

"使用clang对c和c++进行语法检查,对python使用pylint进行语法检查
let g:ale_linters = {
\'c++': ['clang', 'gcc'],
\'c': ['clang', 'gcc'],
\'python': ['pylint'],
\}
" <F9> 触发/关闭代码动态检查
map <F9> :ALEToggle<CR>
"普通模式下,ak 前往上一个错误或警告,aj 前往下一个错误或警告
nmap ak <Plug>(ale_previous_wrap)
nmap aj <Plug>(ale_next_wrap)
" ad 查看错误或警告的详细信息
nmap ad :ALEDetail<CR>
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
""""""""""""""""""""""""""""""""""快速添加/删除注nerdcommenter""""""""""""""""""""""""""""""""""""""""""
""常用快捷键
""[count]<leader>cc	注释当前行起始的 [count]行 或者 注释 visual mode 选中的文本
""[count]<leader>cn	注释方式同 <leader>cc,但是强制嵌套
""[count]<leader>c<space>	切换所选行的注释状态。 如果注释了最上面的选定行,则取消注释所有选定行,反之亦然。
""[count]<leader>cm	使用一组多行注释符注释选定行
""[count]<leader>ci	单独切换所选行的各行注释状态
""[count]<leader>cs	使用块格式布局注释掉选定的行。
""<leader>c$	注释从光标到行尾的当前行。
""<leader>cA	在行尾添加注释,并切换至插入模式,光标停留在注释符中间
""[count]<leader>cl 注释方式同 <leader>cc,注释符左对齐(<leader>cl)或者两边对齐(<leader>cb)
""[count]<leader>cb	注释方式同 <leader>cc,注释符左对齐(<leader>cl)或者两边对齐(<leader>cb)
""[count]<leader>cu	取消选定行的注释


let g:NERDSpaceDelims            = 1                                    " 在注释符号后加一个空格
let g:NERDCompactSexyComs        = 1                                    " 紧凑排布多行注释
let g:NERDDefaultAlign           = 'left'                               " 逐行注释左对齐
let g:NERDAltDelims_java         = 1                                    " JAVA 语言使用默认的注释符号
let g:NERDCustomDelimiters       = {'c': {'left': '/*', 'right': '*/'}} " C 语言注释符号
let g:NERDCommentEmptyLines      = 1                                    " 允许空行注释
let g:NERDTrimTrailingWhitespace = 1                                    " 取消注释时删除行尾空格
let g:NERDToggleCheckAllLines    = 1                                    " 检查选中的行操作是否成功
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

安装的插件:

vim-plug

要启用 Vim 编辑器中的语法高亮显示功能,可以通过修改 Vim 的配置文件来实现。Vim 支持多种语言的语法高亮,并且可以根据个人喜好进行自定义。 ### 启用语法高亮 1. **启用全局语法高亮** 打开 Vim 的配置文件 `~/.vimrc`(如果文件不存在,可以创建一个),并在其中添加以下行来启用语法高亮: ```vim syntax on ``` 这条命令会加载与文件类型相关的语法高亮规则,使代码在 Vim 中以不同颜色显示,便于阅读和调试[^1]。 2. **设置配色方案** 语法高亮的效果还取决于当前使用的配色方案。Vim 提供了多种内置的配色方案,也可以通过插件安装更多主题。要设置配色方案,可以在 `~/.vimrc` 文件中添加如下命令: ```vim colorscheme desert ``` 这里以 `desert` 为例,它是一个内置的配色方案。你可以根据喜好选择其他配色方案,如 `molokai`、`solarized` 等。 3. **启用自动缩进和行号显示** 为了进一步提升代码编辑体验,可以同时启用自动缩进和行号显示功能,这些设置也可以添加到 `~/.vimrc` 文件中: ```vim set autoindent set number ``` 自动缩进功能会在你按下回车键后自动将新行缩进到与上一行相同的级别,而行号显示则有助于快速定位代码位置。 4. **保存并应用配置** 保存 `~/.vimrc` 文件后,重新启动 Vim 或者在 Vim 中执行以下命令以应用更改: ```vim :source ~/.vimrc ``` 这样,Vim 就会按照新的配置启用语法高亮、自动缩进和行号显示等功能。 ### 自定义语法高亮 如果你希望进一步自定义语法高亮的样式,可以创建或修改特定语言的语法文件。这些文件通常位于 `~/.vim/syntax/` 目录下。例如,如果你想为 Python 语言自定义语法高亮规则,可以创建一个名为 `python.vim` 的文件,并在其中定义你需要的高亮样式。 此外,还可以通过插件管理器(如 `vim-plug`)安装额外的语法高亮插件,以支持更多语言或更丰富的高亮效果。 ### 示例:使用 `vim-plug` 安装语法高亮插件 1. **安装 `vim-plug`** 如果尚未安装 `vim-plug`,可以通过以下命令安装: ```sh curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim ``` 2. **配置 `vim-plug`** 在 `~/.vimrc` 文件中添加以下内容以配置 `vim-plug` 并安装语法高亮插件: ```vim call plug#begin('~/.vim/plugged') Plug 'sheerun/vim-polyglot' call plug#end() ``` `vim-polyglot` 是一个多语言语法高亮插件,支持多种编程语言。 3. **安装插件** 保存 `~/.vimrc` 文件后,在 Vim 中执行以下命令以安装插件: ```vim :PlugInstall ``` 安装完成后,重启 Vim 即可享受更丰富的语法高亮体验。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值