首页 > 其他分享 >vim

vim

时间:2024-01-05 15:56:17浏览次数:26  
标签:Lf 插件 set vim let ycm

vim配置

vim 插件配置

1. 安装插件

curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

2.配置插件(~/.vimrc)

" vim plugin
call plug#begin('~/.vim/plugged')
"Plug 'morhetz/gruvbox'
Plug 'preservim/nerdtree'
Plug 'vim-airline/vim-airline'
Plug 'Yggdroot/LeaderF'
Plug 'ycm-core/YouCompleteMe'
Plug 'easymotion/vim-easymotion'
Plug 'Chiel92/vim-autoformat'
Plug 'mhinz/vim-signify'
Plug 'skywind3000/asyncrun.vim'
Plug 'junegunn/vim-easy-align'
call plug#end()

" for leader shotcut

let mapleader = ";"
nnoremap <Leader>q :q<CR>
nnoremap <Leader>w :w<CR>
nnoremap <Leader>g :NERDTreeToggle<CR>
nnoremap <Leader>f :NERDTreeFind<CR>


set clipboard=unnamedplus   " 使用系统剪切板-> vim
set clipboard=unnamed       " vim -> 系统剪切版
autocmd InsertLeave * se nocul  " 用浅色高亮当前行  
autocmd InsertEnter * se cul    " 用浅色高亮当前行 
set ruler           " 显示标尺 
" set laststatus=2   " 开启状态行,但是目前无效
" set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}   "状态行显示的内容 
set autoread " 文件改动实时显示
set autowrite " 文件自动保存
filetype on   " 打开文件类型检测
filetype plugin on   " 载入文件类型插件
set backspace=2    " 使回格键(backspace)正常处理indent, eol, start等
set completeopt=longest,menu " 打开文件类型检测, 加了这句才可以用智能补全
set tags=./.tags;,.tags " ctag 使用开关

" morhetz/gruvbox插件
" colorscheme gruvbox



" ycm-core/YouCompleteMe插件配置
let g:ycm_python_binary_path = '~/.local/python3/bin/python3'
" C family Completion Path
let g:ycm_global_ycm_extra_conf='~/.ycm_extra_conf.py'
" 跳转快捷键
let g:ycm_disable_for_files_larger_than_kb=100000
nnoremap <c-k> :YcmCompleter GoToDeclaration<CR>|
nnoremap <c-h> :YcmCompleter GoToDefinition<CR>|
nnoremap <c-j> :YcmCompleter GoToDefinitionElseDeclaration<CR>|
" 停止提示是否载入本地ycm_extra_conf文件
let g:ycm_confirm_extra_conf = 0
" 语法关键字补全
let g:ycm_seed_identifiers_with_syntax = 1
" 开启 YCM 基于标签引擎
let g:ycm_collect_identifiers_from_tags_files = 1
" 从第2个键入字符就开始罗列匹配项
let g:ycm_min_num_of_chars_for_completion=2
" 在注释输入中也能补全
let g:ycm_complete_in_comments = 1
" 在字符串输入中也能补全
let g:ycm_complete_in_strings = 1
" 添加C++11支持
let g:syntastic_cpp_compiler = 'g++'
let g:syntastic_cpp_compiler_options = '-std=c++11 -stdlib=libc++'
" 注释和字符串中的文字也会被收入补全
let g:ycm_collect_identifiers_from_comments_and_strings = 1
" 弹出列表时选择第1项的快捷键(默认为<TAB>和<Down>)
"let g:ycm_key_list_select_completion = ['<C-n>', '<Down>']
" 弹出列表时选择前1项的快捷键(默认为<S-TAB>和<UP>)
"let g:ycm_key_list_previous_completion = ['<C-p>', '<Up>']
" 主动补全, 默认为<C-Space>
"let g:ycm_key_invoke_completion = ['<C-Space>']
" 停止显示补全列表(防止列表影响视野), 可以按<C-Space>重新弹出
"let g:ycm_key_list_stop_completion = ['<C-y>']
let g:ycm_semantic_triggers =  {
\   'c,cpp,python,java,go,erlang,perl':['re!\w{2}'],
\   'cs,lua,javascript':['re!\w{2}'],
\}
"ycm默认需要按ctrl + space 来进行补全,可以在上面的花括号里面加入下面两行代码来直接进行补全[不需要按键]

let g:ycm_add_preview_to_completeopt = 0

let g:ycm_log_level = 'error'

"disable ycm 语法检查
let g:ycm_enable_diagnostic_signs = 0
let g:ycm_enable_diagnostic_highlighting = 0



" NERDTree 插件设置
" 文件树设置 {{{
" 关闭NERDTree快捷键
" map <leader>t :NERDTreeToggle<CR>
""当NERDTree为剩下的唯一窗口时自动关闭
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
""修改树的显示图标
let g:NERDTreeDirArrowExpandable = '►'
let g:NERDTreeDirArrowCollapsible = '▼'
let NERDTreeAutoCenter=1
" 显示行号
let NERDTreeShowLineNumbers=1
" 是否显示隐藏文件
let NERDTreeShowHidden=1
" 设置宽度
let NERDTreeWinSize=28
" 在终端启动vim时,共享NERDTree
let g:nerdtree_tabs_open_on_console_startup=1
" 忽略一下文件的显示
let NERDTreeIgnore=['\.pyc','\~$','\.swp']
let g:NERDTreeIndicatorMapCustom = {
    \ "Modified"  : "✹",
    \ "Staged"    : "✚",
    \ "Untracked" : "✭",
    \ "Renamed"   : "➜",
    \ "Unmerged"  : "═",
    \ "Deleted"   : "✖",
    \ "Dirty"     : "✗",
    \ "Clean"     : "✔",
    \ 'Ignored'   : '☒',
    \ "Unknown"   : "?"
    \ }
" }}}



" Yggdroot/LeaderF 插件配置
let g:Lf_Ctags = '~/.local/ctags/bin/ctags'
let g:Lf_ShortcutF = '<c-p>'
let g:Lf_UseCache = 0
noremap <c-n> :LeaderfMru<cr>
noremap <leader>f :LeaderfFunction!<cr>
noremap <leader>b :LeaderfBuffer<cr>
noremap <leader>v :LeaderfBufTag<cr>
noremap <C-F> :<C-U><C-R>=printf("Leaderf! rg -e %s ", expand("<cword>"))<CR>
noremap <C-B> :<C-U><C-R>=printf("Leaderf! rg -F --current-buffer -e %s ", expand("<cword>"))<CR>
noremap go :<c-U>Leaderf! rg --recall<CR>


let g:Lf_StlSeparator = { 'left': '', 'right': '', 'font': '' }

let g:Lf_RootMarkers = ['.project', '.root', '.svn', '.git']
let g:Lf_WorkingDirectoryMode = 'Ac'
let g:Lf_WindowHeight = 0.30
let g:Lf_CacheDirectory = expand('~/.vim/cache')
let g:Lf_ShowRelativePath = 0
let g:Lf_HideHelp = 1
let g:Lf_StlColorscheme = 'powerline'
let g:Lf_PreviewResult = {'Function':0, 'BufTag':0}

let g:ycm_filetype_whitelist = { 
            \ "c":1,
            \ "cpp":1, 
            \ "python":1,
            \ "sh":1
            \ }

3.安装插件

完成配置后,保存文件并重新启动 Vim。之后,在 Vim 的命令模式下输入 :PlugInstall 就应该可以正常安装插件了。

4.正常使用

image

配置插件ycm

安装python>3.8
下载
wget https://www.python.org/ftp/python/3.10.10/Python-3.10.10.tgz
编译安装
tar -zxf Python-3.10.10.tgz
# vim依赖python3的动态库,所以必需要--enable-shared 
cd Python-3.10.10 && ./configure --enable-shared 
make && sudo make install
更新库
# 更新系统的动态链接器缓存,使其能够找到Python库文件
sudo ldconfig
如果Python库文件不在系统默认的库文件路径中,你可以手动将库文件路径添加到`LD_LIBRARY_PATH`环境变量中
export LD_LIBRARY_PATH=/usr/local/lib/python3.10 # 将路径替换为你的Python库文件所在路径

pip3 install PyHamcrest
pip3 install flake8
安装vim > 8.3
下载
git clone https://github.com/vim/vim.git
编译安装
cd vim
LDFLAGS="-rdynamic" ./configure --with-features=huge --enable-python3interp
make && sudo make install

set 配置

:set number				" 显示行号
:set nonumber			" 关闭行号

:set tabstop=4 			" 设置 tab space 为4个空格
:set ts=4				" 同 tabstop
:set expandtab			" 将tab替换为指定数量的空格
:set autoindent			" 设置为自动缩进

:set background=dark		" 设置背景颜色

:set guifont=consolas:h14		" 设置字体为 consolas,字号为14

:set history=700		" 设置保存命令的行数

:set autoread		" 设置当文件变化时,自动读取新文件

:set wrap		" 启动折行
:set nowrap		" 禁止折行

" 切换文件格式,ff是 fileformat 的缩写
:set ff=unix			" 将文件切换为 unix 格式,每行以 "\n" 结尾 
:set ff=dos				" 切换为 Windows 格式,每行以 "\r\n" 结尾

" 设置编码格式
:set encoding=utf-8			" 设置 vim 展示文本时的编码格式
:set fileencoding=utf-8		" 设置 vim 写入文件时的编码格式

:set filetype=html			" 设定文件类型,方便语法高亮

:set hlsearch				" 高亮显示搜索结果

:set paste					" 设置为 paste 模式,在粘贴前设置该模式,可以避免各种 auto-formating
:set nopaste				" 切换回 normal 模式

:set noai           "无缩进模式"

使用

image

参考

vim状态栏配置

标签:Lf,插件,set,vim,let,ycm
From: https://www.cnblogs.com/ftiany/p/17947436

相关文章

  • vi / vim 键盘图(清晰打印版,桌面背景好图)
    PDFFilehttps://files.cnblogs.com/files/RioTian/vivim-graphical.zip?t=1704439837&download=true程序员定制版(on-screen150DPI)程序员定制版(colorhard-copy300DPI)程序员定制版(monochromehard-copy300DPI),下载打印版程序员定制版(colorblindhard-copy))**,下载打印......
  • Golang开发环境搭建-Vim篇
    本文于2017年3月份完成,发布在个人博客网站上。考虑个人博客因某种原因无法修复,于是在博客园安家,之前发布的文章逐步搬迁过来。最近在研究docker的使用方法,恰好手边有一本docker源码分析的书,所以在ubuntu环境下准备了一套golang的开发环境,便于在学习docker使用的时候顺便学习gol......
  • 绿色Windows版gvim
    ####介绍绿色版gvim,基于官网9.0版本制作,Windows系统下载后直接运行gvim.exe即可(不能存放于中文目录中,否则配置不生效)下载地址:https://gitee.com/jongwy/gvim####使用说明1.在官版基础上增加的设置:增加行号显示、设置字体为Consolas、文字编码默认utf-8、自动换行、颜色模版......
  • vim文本编辑
    vim/vi文本编辑:  vi/vim,一个基于控制台的文本编辑器gedit,一个基于GUI的文本编辑器其中,vim是vi的升级版,后续多使用vim命令 演示:1.打开文本编辑vimabc.txt如果目标文件存在,则打开编辑;如果不存在则会新建一个文件如果系统没有......
  • [20231226]vim Align插件使用例子.txt
    [20231226]vimAlign插件使用例子.txt--//有时候看别人的blog如果遇到执行计划如下,我会使用vim的Align插件做一些处理,好久不用有点生疏,做一个记录:--//假设拷贝和粘贴的执行计划如下:---------------------------------------------------------------------------------------......
  • 在Idea中使用Vim可太牛了!
    写在前面最近看到了一篇《IDEA+VIM,竟可以这么牛逼!》的文章,博主介绍了如何在Idea中使用Vim,这让自己感觉十分的惊喜。惊的是:原来Vim和IDEA是可以集成到一起的,可以兼用两者的优点提高开发效率。喜的是:终于又可以重拾Vim了,因为以前写C++的时候经常使用Vim做coding,Vim入门可吃了不少......
  • Vim 操作-替换
    Vim操作-替换substitute:[range]s[ubstitute]/{pattern}/{string}/{flag}替换的操作范围以行为基础;%-全局范围,m,n-使用逗号隔开的m到n范围,.表示当前操作行;特殊字符需要用转义符号\,如\s\/;1.Range设定:%s/.../g,对当前文本的每一行操作:m,ns/.../g,对m......
  • 上手 Linux:快速入门 Vim
    Vi和VimVi是Linux操作系统默认的文本编辑器。Vim是Vi的加强版。不仅可以做简单的文字编辑,它也有颜色高亮,语法提示等特性,可以用作编程。现在大部分的Linux发行版都同时包含Vi和Vim。在Linux操作系统中,Vim是必须掌握的一个工具:作为命令行模式下的文本编辑器非常好用......
  • 记录 | ubuntu升级/降级/安装指定版本的vim
    安装安装依赖:sudoaptinstallgitmakeclanglibtool-bin下载源码:gitclone--depth=1https://github.com/vim/vim.gitvim_sourcecdvim也可以从http://github.com/vim/vim/tags下载,在我写这篇笔记的时候最新的版本是v8.2.4995wget-chttps://github.com/vim/vim/archive/......
  • centos7 下安装 moodle历史命令(未能包含vim 修改配置文件)
    1init02cd"/data/webapps/moodle"3cd/data/webapps/4ls5ll6cdmoodle/7ls8ll9vimlib/outputrenderers.php10ll11cd../12ll13chmod-R0777./moodle/14ll15......