vim 进阶配置

vim

作者:解琛
时间:2020 年 8 月 29 日

一、与系统剪切板进行交互

先进 vim 里面,在 normal 模式下用:reg,查看有没有 + 开头的行,如果没有,则在终端进行安装。

sudo apt install vim-gnome

使用 vimplus 的 y 即可完成系统剪切板的复制。

有了 + 剪切板后,使用以下指令进行确认。

vim --version | grep clipboard

之后修改 vim 的启动文件即可。

set clipboard=unnamesudo apt install vim-gnome

二、Markdown 目录管理插件

为 Markdown 生成 TOC 的 Vim 插件

Plug 'mzlogin/vim-markdown-toc'

" markdown 目录配置;
map <F5> :GenTocGFM<CR>

三、将剪切板中的图片插入为 Markdown 代码

"安装插件
Plug 'ferrine/md-img-paste.vim' 

"设置默认储存文件夹。这里表示储存在当前文档所在文件夹下的'pic'文件夹下,相当于 ./pic/
let g:mdip_imgdir = 'pic' 
"设置默认图片名称。当图片名称没有给出时,使用默认图片名称
let g:mdip_imgname = 'image'
"设置快捷键,个人喜欢 Ctrl+p 的方式,比较直观
autocmd FileType markdown nnoremap <silent> <C-p> :call mdip#MarkdownClipboardImage()<CR>F%i

四、刷新当前页面

vim 如何刷新或重载reload 已打开的文件

   :e

to reload the file.  I believe, if you've made changes to the
file, it requires you to do

   :e!

to force-discard your local changes and reload from the disk.

If I'm not sure, I'll often yank my current copy into a scratch
buffer/window, force-reload the file from disk, and then use

附录一:vimrc.custom.config


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 用户自定义配置(该文件放一般性配置,可覆盖~/.vimrc里的配置,若要增加、卸载插件,请放入~/.vimrc.custom.plugins)
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" 开启相对行号
set relativenumber  

" 开启鼠标
set mouse=a
" 设置光标所在列高亮
" set cursorcolumn

" indentLine 开启代码对齐线
" let g:indentLine_enabled = 1

" markdown
let g:markdown_preview_sync_google_chrome_path = "/usr/bin/google-chrome"

let g:mkdp_path_to_chrome = "google-chrome"
" 设置 chrome 浏览器的路径(或是启动 chrome(或其他现代浏览器)的命令)
" 如果设置了该参数, g:mkdp_browserfunc 将被忽略

let g:mkdp_browserfunc = 'MKDP_browserfunc_default'
" vim 回调函数, 参数为要打开的 url

let g:mkdp_auto_start = 0
" 设置为 1 可以在打开 markdown 文件的时候自动打开浏览器预览,只在打开
" markdown 文件的时候打开一次

let g:mkdp_auto_open = 1
" 设置为 1 在编辑 markdown 的时候检查预览窗口是否已经打开,否则自动打开预
" 览窗口

let g:mkdp_auto_close = 1
" 在切换 buffer 的时候自动关闭预览窗口,设置为 0 则在切换 buffer 的时候不
" 自动关闭预览窗口

let g:mkdp_refresh_slow = 0
" 设置为 1 则只有在保存文件,或退出插入模式的时候更新预览,默认为 0,实时
" 更新预览

let g:mkdp_command_for_global = 0
" 设置为 1 则所有文件都可以使用 MarkdownPreview 进行预览,默认只有 markdown
" 文件可以使用改命令

let g:mkdp_open_to_the_world = 0
" 设置为 1, 在使用的网络中的其他计算机也能访问预览页面
" 默认只监听本地(127.0.0.1),其他计算机不能访问

nmap <silent> <F7> <Plug>MarkdownPreview
imap <silent> <F7> <Plug>MarkdownPreview
nmap <silent> <F8> <Plug>StopMarkdownPreview
imap <silent> <F8> <Plug>StopMarkdownPreview

let g:mkdp_brower = 'google-chrome'
autocmd Filetype markdown noremap ,m :MarkdownPreview<CR>
autocmd Filetype markdown noremap ,ms :MarkdownPreviewStop<CR>
map<F2> :NERDTreeToggle<CR>

" " Doxygen
" let g:DoxygenToolkit_authorName="chxuan, 787280310@qq.com"
" let g:DoxygenToolkit_authorName="chxuan, 787280310@qq.com"
" let s:licenseTag = "Copyrigtt(C)\<enter>"
" let s:licenseTag = "Copyrigtt(C)\<enter>"
" let s:licenseTag = s:licenseTag . "For free\<enter>"
" let s:licenseTag = s:licenseTag . "All right reserved\<enter>"
" let g:DoxygenToolkit_licenseTag = s:licenseTag
" let g:DoxygenToolkit_briefTag_funcName="yes"
" let g:doxygen_enhanced_color=1
" let g:DoxygenToolkit_commentType="Qt"

" Table-mode
let g:table_mode_corner = '|'
let g:table_mode_border=0
let g:table_mode_fillchar=' '

function! s:isAtStartOfLine(mapping)
  let text_before_cursor = getline('.')[0 : col('.')-1]
  let mapping_pattern = '\V' . escape(a:mapping, '\')
  let comment_pattern = '\V' . escape(substitute(&l:commentstring, '%s.*$', '', ''), '\')
  return (text_before_cursor =~? '^' . ('\v(' . comment_pattern . '\v)?') . '\s*\v' . mapping_pattern . '\v$')
endfunction

inoreabbrev <expr> <bar><bar>
          \ <SID>isAtStartOfLine('\|\|') ?
          \ '<c-o>:TableModeEnable<cr><bar><space><bar><left><left>' : '<bar><bar>'
inoreabbrev <expr> __
          \ <SID>isAtStartOfLine('__') ?
          \ '<c-o>:silent! TableModeDisable<cr>' : '__'

" Auto-save
let g:auto_save = 1  " enable AutoSave on Vim echodoc_enable_at_startup

" MouseType
let &t_SI.="\e[5 q" "SI = INSERT mode
let &t_SR.="\e[5 q" "SR = REPLACE mode
let &t_EI.="\e[5 q" "EI = NORMAL mode (ELSE)

"Cursor settings:
"  1 -> blinking block
"  2 -> solid block
"  3 -> blinking underscore
"  4 -> solid underscore
"  5 -> blinking vertical bar
"  6 -> solid vertical bar
"let &t_SI = "\<Esc>]50;CursorShape=1\x7"
"let &t_SR = "\<Esc>]50;CursorShape=2\x7"
"let &t_EI = "\<Esc>]50;CursorShape=0\x7"

" vim + latex
let g:tex_flavor='latex'
let g:vimtex_view_method='zathura'
let g:vimtex_quickfix_mode=0
set conceallevel=1
let g:tex_conceal='abdmg'

" ultisnips
" Trigger configuration. Do not use <tab> if you use https://github.com/Valloric/YouCompleteMe.
let g:UltiSnipsExpandTrigger="<tab>"
let g:UltiSnipsJumpForwardTrigger="<c-b>"
let g:UltiSnipsJumpBackwardTrigger="<c-z>"
" If you want :UltiSnipsEdit to split your window.
let g:UltiSnipsEditSplit="vertical"

" 格式化 Json 文件
map <F4><Esc>:%!python -m json.tool<CR>

" 默认复制到系统剪切板;
set clipboard=unnamedplus

" 消除鼠标滚动时的抖动;
" noremap <ScrollWheelDown><ScrollWheelUp> <ScrollWheelDown>
" noremap <ScrollWheelUp><ScrollWheelUp> <ScrollWheelUp>

" markdown 目录配置;
map <F5> :GenTocGFM<CR>

"autocmd Filetype markdown map <leader>w yiWi[<esc>Ea](<esc>pa)
autocmd Filetype markdown inoremap ,f <Esc>/<++><CR>:nohlsearch<CR>c4l
autocmd Filetype markdown inoremap ,n ---<Enter><Enter>
autocmd Filetype markdown inoremap ,b **** <++><Esc>F*hi
autocmd Filetype markdown inoremap ,s ~~~~ <++><Esc>F~hi
autocmd Filetype markdown inoremap ,i ** <++><Esc>F*i
autocmd Filetype markdown inoremap ,d `` <++><Esc>F`i
autocmd Filetype markdown inoremap ,c ```<Enter><++><Enter>```<Enter><Enter><++><Esc>4kA
autocmd Filetype markdown inoremap ,p <div align=center>![](<++>)<div align=left> <++><Esc>F[a
" autocmd Filetype markdown inoremap ,h ===============<Enter><Esc>F=hi
autocmd Filetype markdown inoremap ,h ===============<Enter>
autocmd Filetype markdown inoremap ,a [](<++>) <++><Esc>F[a
autocmd Filetype markdown inoremap ,1 #<Space><Enter><++><Esc>kA
autocmd Filetype markdown inoremap ,2 ##<Space><Enter><++><Esc>kA
autocmd Filetype markdown inoremap ,3 ###<Space><Enter><++><Esc>kA
autocmd Filetype markdown inoremap ,4 ####<Space><Enter><++><Esc>kA
autocmd Filetype markdown inoremap ,l --------<Enter>

附录二、vimrc.custom.plugins

"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" 用户自定义插件列表(该文件只放插件,若要增加其他配置,请放入~/.vimrc.custom.config)
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" 增加~/.vimrc里没有的插件
" 增加插件后需要进行插件安装,安装步骤如下:
" 1.执行:w保存修改
" 2.执行,s重新加载vim配置
" 3.执行,,i进行插件安装
" Plug 'iamcco/mathjax-support-for-mkdp'
" Plug 'iamcco/markdown-preview.vim'
" Plug 'Yggdroot/indentLine'
" Plug 'gorodinskiy/vim-coloresque'
" Plug 'vim-scripts/DoxygenToolkit.vim'
Plug 'dhruvasagar/vim-table-mode'
Plug '907th/vim-auto-save'
Plug 'lervag/vimtex'
Plug 'sirver/ultisnips'
Plug 'honza/vim-snippets'
Plug '/usr/local/opt/fzf'
Plug 'junegunn/fzf'
Plug 'mzlogin/vim-markdown-toc'
" Plug 'ferrine/md-img-paste.vim' 

" 卸载/禁用~/.vimrc里的默认插件
" UnPlug 'chxuan/prepare-code'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

解琛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值