有没有大佬推荐一下vim编辑器的常用配置?
本人刚开始使用Ubuntu,因为要学习编程,所以要习惯使用vim编辑器,但是很多时候觉得不是很方便,所以想问一下有没有想在vimrc文件里面配置一下,但是我不知道要配置一些什么,想让大佬给我推荐一下有没有什么比较好用的配置 在 .vimrc 文件中,你可以进行各种配置以改善你的Vim使用体验。以下是一些我建议的常用和有用的配置。1. 设置行号:
set number
在Vim的左边显示行号可以帮助你更快地定位代码。
2. 设置搜索高亮:
set hlsearch
这个命令会高亮显示你的搜索结果。
3. 启用语法高亮:
syntax on
这个命令可以让Vim显示语法高亮,让代码更易于阅读。
4. 设置自动缩进:
set autoindent
set smartindent
这两个命令可以让Vim自动按照代码的结构进行缩进,让你的代码看起来更整齐。
5. 设置tab键的空格数:
set tabstop=4
这个命令可以设置按下tab键时插入的空格数。
6. 启用鼠标:
set mouse=a
这个命令可以让你在Vim中使用鼠标。
这些只是基础配置,Vim的强大在于其可定制性极高。根据你的需求,你可能还需要安装各种插件,比如自动完成插件,文件树插件,代码片段插件等。 在配置Vim编辑器之前,强烈推荐你使用vim-plug插件管理器来安装和管理其他插件。以下是一些常用的Vim配置和插件:
1. 常规设置:
- 设置行号:set number
- 启用语法高亮:syntax enable
- 设置自动缩进:set autoindent
- 启用括号匹配:set showmatch
- 启用搜索时忽略大小写:set ignorecase
- 设置tab为4个空格:set tabstop=4 shiftwidth=4 expandtab
2. 主题和外观:
- 安装和使用适合你的喜好的主题,如:gruvbox, molokai, dracula等。可以通过vim-plug安装。
- 启用状态栏:set laststatus=2
- 配置状态栏显示的信息,如文件类型、光标位置等:set statusline=%F%m%r%h%w\ \ \ [%p%%]\ %{strftime('%c')}
3. 插件:
- vim-airline: 为状态栏提供美观的外观,并显示有关文件状态、Git信息等。
- NERDTree: 提供文件浏览器功能。
- CtrlP: 快速查找和打开文件。
- YouCompleteMe: 强大的代码自动补全插件。
- Ale: 语法和风格检查器,可用于各种编程语言。
- vim-commentary: 快速注释代码。
- vim-surround: 快速添加、修改和删除括号、引号等围绕文本的字符。
- vim-gitgutter: 在侧边栏显示Git的变动情况。
4. 快捷键映射:
- 将ESC键映射为jj或jk,以便更快地退出插入模式:inoremap jj <Esc> 或 inoremap jk <Esc>
- 提供快速保存文件的快捷键映射:nnoremap <leader>s :w<CR>
这只是一些常用的Vim配置和插件示例,你可以根据个人喜好进行进一步定制。在~/.vimrc文件中添加上述配置,并使用vim-plug来安装插件。完成配置后,重新启动Vim即可生效。希望这些推荐对你有所帮助!
球一个最佳答案谢谢啦!这对我非常重要!{:10_254:}{:10_254:}{:10_254:}
不带ycm的版本
" 定义<Leader>
let mapleader=";"
set number " 显示行号
set laststatus=2 " 总是显示状态栏
set scrolloff=3 " 光标移动到buffer的顶部和底部时保持3行距离
set nowrap " 禁止折行
set hlsearch " 高亮显示搜索结果
set incsearch " 开启实时搜索
set ignorecase " 搜索时大小写不敏感
set nocompatible " 关闭兼容模式
set wildmenu " vim自身命令行模式智能补全
set noshowmatch " 不要高亮匹配括号
" 关键字高亮
syntax on
" 编码格式
set encoding=utf-8
set fileencodings=utf-8,default,gb18030,gbk,gb2312
" 启用自动备份
set backup
" 折叠
set foldmethod=manual " 手工定义折叠
set foldlevel=99 " 启动vim默认不折叠
" 设置快捷键将选中文本复制至系统剪贴板
vnoremap <Leader>y "+y
" 设置快捷键将系统剪贴板内容粘贴至vim
nmap <Leader>p "*p
nmap <Leader>P "*P
" 自动跳到上一次的光标位置
au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
" 关闭插入模式识别 <Esc> 开始的功能键
set noesckeys
" 设置不可见字符的显示方式
set list
set listchars=tab:-->,space:.
highlight SpecialKey ctermfg=darkgray
" C/C++ 代码格式
set cinoptions=l1,g0
" 设置缩进
autocmd BufNewFile,BufReadPost,BufNew * exec "call SetTab(4)"
autocmd BufNewFile,BufReadPost Makefile exec "set noexpandtab"
func SetTab(size)
exec 'set tabstop='.a:size
exec 'set softtabstop='.a:size
exec 'set shiftwidth='.a:size
set expandtab
set cindent
set smartindent
set autoindent
endfunc
" 新建文件,自动插入文件头
autocmd BufNewFile *.sh,*.py,*.c,*.cpp,*.h,*.hpp exec ":call SetTitle()"
func SetTitle()
if expand("%:e") == 'sh'
call setline(1, "#!/bin/bash")
call append(line("$"), "")
exec ":2"
elseif expand("%:e") == 'py'
call setline(1, "#!/usr/bin/env python")
call append(line("$"), "#coding=utf-8")
call append(line("$"), "")
exec ":3"
elseif expand("%:e") == 'c'
if expand("%") == "main.c"
call setline(1, "#include <stdio.h>")
call append(line("$"), "")
call append(line("$"), "int main(void) {")
call append(line("$"), " ")
call append(line("$"), " return 0;")
call append(line("$"), "}")
exec ":4"
endif
elseif expand("%:e") == 'cpp'
if expand("%") == "main.cpp"
call setline(1, "#include <iostream>")
call append(line("$"), "")
call append(line("$"), "int main() {")
call append(line("$"), " ")
call append(line("$"), " return 0;")
call append(line("$"), "}")
exec ":4"
endif
elseif expand("%:e") == 'h' || expand("%:e") == 'hpp'
call setline(1, "#ifndef _".toupper(expand("%:r"))."_".toupper(expand("%:e"))."_")
call append(line("$"), "#define _".toupper(expand("%:r"))."_".toupper(expand("%:e"))."_")
call append(line("$"), "")
call append(line("$"), "#endif")
exec ":3"
endif
endfunc
页:
[1]