Vim实用设置

- hikerpig
#Vim

不定时更新,同时一些收集到的文章会放在 我的 wiki 里

Get rid of ^M

:set ff=unix

去掉行尾空格

nmap ,ts <Esc>:%s/\s\+$//gc<cr>

瞬间输入当前目录和文件名

inoremap \fp <C-R>=getcwd()<CR>
inoremap \fn <C-R>=expand("%:t:r")<CR>
inoremap \fN <C-R>=expand("%:p:r")<CR>

具体每一个修饰符的意思可以:help expand()看下

切换工作目录到当前编辑文件目录下

参见 Vim Tips Wiki 中这篇

" change cwd
nnoremap ,cd :cd %:p:h<CR>:pwd<CR>

调出命令/搜索历史

Typing Ctrl-F during / search will open search history.

<c-f> also works for
/ search
? reverse search
: ex commands
In normal mode, try
q/
q?
q:

来自 twitter

快速跳转

  • 40G 跳到第 40 行,20| (pipe 符号) 跳到第 20 列。

项目全局搜索当光标下的词

这里使用了 fzf-preview 这一插件的 FzfPreviewProjectGrep command,但关键在于 <c-r><c-w>,其意为从一个特殊的寄存器中取当前 cursor 下的 word,这个语法和 keymap 中的 <C-R>长得很像,花了好久才明白这是什么意思。

vmap ,fg <Esc>:FzfPreviewProjectGrep <c-r><c-w><cr>

跳到下一个 git 冲突处

" goto next conflict"
noremap <silent> ]c /^\(<<<<<<<\\|=======\\|>>>>>>>\)<cr>