Vim ripgrep quickfix netrw nmap autocmd wincmd 。。。大杂烩 ?!

啊,这篇文章就随意一点吧,就意识流地写吧(虽然一直都是这样子),记录一下最近搞 Neovim 的心得 1. 如何使用 nvim + coc 如何滚动悬浮窗口内的内容呢? 使用 nvim + coc 编写代码的时候,弹出来的悬浮窗口内有滚动条,我怎样才能滚动悬浮窗口内的内容呢?试试 ctrl-w ctrl-w 切换到 floatwin 中,再翻页;更顺手一些的操作是:如果触发 floatwin 的按键是 nmap K, 连按两次 K 就会切换到 floatwin 中 👉 https://segmentfault.com/q/1010000040349668 或者直接映射相关的键位,参考官方 Github 的 Readme 👉 https://github.com/neoclide/coc.nvim/commit/ 2. Vim f和t的快捷方式 [ 移动到指定字符 ] 如果我们想在当前行内快速移动,可以使用f, t, F, T命令 “f"命令移动到光标右边的指定字符上,例如,“fx”,会把移动到光标右边的第一个’x’字符上,“F"命令则反方向查找,也就是移动到光标左边的指定字符上 “t"命令和"f"命令的区别在于,它移动到光标右边的指定字符之前,例如,“tx"会移动到光标右边第一个’x’字符的前面,“T"命令是"t"命令的反向版本,它移动到光标左边的指定字符之后 这四个命令只在当前行中移动光标,光标不会跨越回车换行符 可以在命令前面使用数字,表示倍数,例如,“3fx"表示移动到光标右边的第3个’x’字符上 “;“命令重复前一次输入的f, t, F, T命令,而”,“命令会反方向重复前一次输入的f, t, F, T命令,这两个命令前也可以使用数字来表示倍数 👉 https://www.jianshu.com/p/a46a89b460a9 3. 如何在 Vim 里面使用 ripgrep ? 关于这个问题有两种解决思路: 使用 Vim 里面自带的 quickfix 将 rg 搜索结果切割填充到 quickfix 里面,这个部分由 Vim 自己完成,要想使用这个功能,只需要在你的 vimrc 或者 init.vim 里面添加这句话就行 ...

五月 24, 2023 · 6 分钟 · 1113 字 · HCY

VIM 代码折叠 Folding

VIM设置代码折叠 zc 关闭当前打开的折叠 (也就是重新折叠起来) zo 打开当前的折叠 (也就是展开折叠) zm 关闭所有折叠 (也就是将所有展开的折叠都重新折叠起来) zM 关闭所有折叠及其嵌套的折叠 zr 打开所有折叠 zR 打开所有折叠及其嵌套的折叠 zd 删除当前折叠 zE 删除所有折叠 zj 移动至下一个折叠 zk 移动至上一个折叠 zn 禁用折叠 zN 启用折叠

四月 30, 2023 · 1 分钟 · 28 字 · HCY

VIM 全局搜索目录下所有文件关键词

vimgrep 和 lvimgrep 是 vim 内置的搜索命令,可以处理不太复杂的正则表达式 它们的搜索结果都会放入一个列表里面,grep 和 vimgrep 的搜索结果放在 quickfix list 里,quickfix list 可以使用 :cw 或者 :copen 在 vim 中打开,它的结果可以和所有的vim窗口共享;lgrep 和 lvimgrep 的结果存放在 location list 里,location list 是当前窗口的,可以使用 :lw 或者 :lopen 打开 最妙的是搜索结果在cw或lw展现的时候,可以回车跳转到指定文件的搜索文本的位置 g:代表所有匹配,而不是其中的一行匹配 j:代表vim不会自动跳转到第一个匹配的地方 比如要在当前文件夹下递归所有文件搜索tar或者是zip,就可以这样搜: 1 2 : lvim /\<\(tar\|zip\)\>/gj **/* : lw tip: 使用cword取当前文件光标所在出的文字,.vimrc配置如下: 1 map <F3> :execute "lvimgrep /" . expand("<cword>") . "/gj **/*" <Bar> lw<CR> 上述配置完成后,在vim中当前光标下,按下F3就会在vim的当前目录下搜索所有的文件及其子文件夹的文件,并显示出来,还可以使用 %:e 来做,意思是当前目录(%)下的同类型文件(e),如下: 1 map <F3> :execute "lvimgrep /" . expand("<cword>") . "/gj " . expand("%:e") <Bar> lw<CR> 关闭autocmds以加速搜索,使用vimgrep搜索上百个文件会很慢,而用外置的grep就很快,一个原因是vimgrep使用vim的时序来读取文件,而这个时序将执行几个autocommands,所以我们在检索时关掉这个功能就会提速不少,所以最终的vimrc中配置如下: 1 map <F3> :noautocmd execute "lvimgrep /" . expand("<cword>") . "/gj **/*" <Bar> lw<CR>

三月 22, 2023 · 1 分钟 · 93 字 · HCY

VIM 自带的自动补全

VIM 的自带补全是根据上下文出现过的单词作为补全元的,将以下代码加入到你的 init.vim 里面就可以实现 Tab 触发补全以及连续使用 Tab 来进行切换选中补全 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 " Simple tab completion ----------------------------------------------------------------------------- " A simple tab completion, if you use the coc.nvim, you should remove this simple completion inoremap <expr> <Tab> getline('.')[col('.')-2] !~ '^\s\?$' \|\| pumvisible() \ ? '<C-N>' : '<Tab>' inoremap <expr> <S-Tab> pumvisible() \|\| getline('.')[col('.')-2] !~ '^\s\?$' \ ? '<C-P>' : '<Tab>' augroup SimpleComplete autocmd CmdwinEnter * inoremap <expr> <buffer> <Tab> \ getline('.')[col('.')-2] !~ '^\s\?$' \|\| pumvisible() \ ? '<C-X><C-V>' : '<Tab>' augroup END " When you use konsole, you may need this hi Pmenu ctermfg=yellow hi PmenuSel ctermbg=darkgray ctermfg=white 不过值得注意的是,这个 VIM 设置片段不应该与其他那些自动补全插件一起使用,容易造成冲突,比如不能和 coc.nvim 一起使用 ...

三月 19, 2023 · 1 分钟 · 114 字 · HCY

Vim => iamcco/markdown-preview.nvim without nodejs

首先是感谢作者的工作,这个是此项目的地址 我使用的是 vim-plug,首先是安装 1 Plug 'iamcco/markdown-preview.nvim', { 'do': { -> mkdp#util#install() }, 'for': ['markdown', 'vim-plug']} vim-plug 安装完之后,重启 vim ,打开 .vim 或者 .md 文件,手动安装离线版本 1 :call mkdp#util#install()

二月 21, 2023 · 1 分钟 · 26 字 · HCY