标签: vim-plugin

请解释Vim的配置目录层次结构

我正在尝试更新Vim配置脚本.我的~/.vim目录中有许多子目录,我不确定它们的具体内容,也不确定为什么有一些似乎是多余的.

这是我的~/.vim目录树的样子

 |-after
 |---ftplugin
 |---syntax
 |-autoload
 |-compiler
 |-doc
 |-ftplugin
 |---latex-suite
 |-----dictionaries
 |-----macros
 |-----packages
 |-----templates
 |---python
 |-indent
 |-plugin
 |-spell
 |-syntax
Run Code Online (Sandbox Code Playgroud)

现在针对具体问题.

  1. 什么进入pluginvs ftplugin
  2. plugin和之间有什么区别autoload
  3. 什么时候应该把东西放在after/...而不是直接放在目录下~/.vim

vim vim-plugin

21
推荐指数
3
解决办法
6748
查看次数

如何在NERDTree中快速搜索?

是否可以通过文件名和文件内容在NERDTree窗口中进行搜索?

vim vim-plugin nerdtree

20
推荐指数
2
解决办法
2万
查看次数

VimL:检查函数是否存在

现在我正在清理我的.vimrc文件,以确保它在大多数系统上兼容.

在我的状态行中,我使用另一个插件设置的GitBranchInfoString()函数,该插件引入的函数.

我想做的是检查是否设置了此功能,然后将其添加到状态行.这将是它自己的行,所以我只需要检查它.

实现这一目标的最简单方法是什么?

感谢你的帮助!

编辑:

我有以下内容:

if exists('*GitBranchInfoString')
    let &stl.='%{GitBranchInfoString()}'
endif
Run Code Online (Sandbox Code Playgroud)

vim vim-plugin

20
推荐指数
3
解决办法
7737
查看次数

在Windows上安装NERDTree

我正在尝试在Windows 7上安装NERDTree(Vim插件).我在我的用户文件夹(C:/ Users/Username)上创建了一个.vim目录并在那里解压缩插件.我运行:helptags~.vim\doc和:helptags [full-path].关闭并重新打开Vim.

但是当我尝试:

:NERDTree
Run Code Online (Sandbox Code Playgroud)

编辑说:

E492: Not an editor command: NERDTree
Run Code Online (Sandbox Code Playgroud)

我该怎么办?

windows vim vim-plugin nerdtree

18
推荐指数
2
解决办法
2万
查看次数

FZF最新文件的工作解决方案在Vim?

我在为FZF vim插件中的最新文件找到合适的解决方案时遇到问题.

这个插件应具有以下功能:

  • 显示在当前vim会话中打开的文件(如缓冲区)
  • 过滤NERD_tree,逃犯等文件

我试过两个解决方案

command! FZFMru call fzf#run({
\ 'source':  reverse(s:all_files()),
\ 'sink':    'edit',
\ 'options': '-m --no-sort -x',
\ 'down':    '40%' })

function! s:all_files()
  return extend(
  \ filter(copy(v:oldfiles),
  \        "v:val !~ 'fugitive:\\|\\.svg|NERD_tree\\|^/tmp/\\|.git/'"),
  \ map(filter(range(1, bufnr('$')), 'buflisted(v:val)'), 'bufname(v:val)'))
endfunction
Run Code Online (Sandbox Code Playgroud)

这个在打开会话期间工作,但是当我重新启动vim时,我没有看到所有上次打开的文件.

command! FZFMru call s:fzf_wrap({
    \'source':  'bash -c "'.
    \               'echo -e \"'.s:old_files().'\";'.
    \               'ag -l -g \"\"'.
    \           '"',
    \})

function! s:fzf_wrap(dict)
    let defaults = {
    \'sink' : 'edit',
    \'options' : '+s -e -m',
    \'tmux_height': '40%',
    \}
    call …
Run Code Online (Sandbox Code Playgroud)

vim mru vim-plugin neovim fzf

18
推荐指数
2
解决办法
3712
查看次数

如何在Ideavim中使用vim插件?

我想在我的Pycharm IDE中使用Tim Pope的vim 环绕插件.我一直在使用Pycharm的IdeaVim插件来使用vim运动和命令.

我知道我可以使用~/.ideavimrc像我正常的.vimrc,但我无法找到有关如何使用插件与ideavim信息.

我可以在我的内部指定插件目录,~/.ideavimrc还是必须采用其他方式?我可以像病原体一样使用插件管理器吗?

vim intellij-idea vim-plugin pycharm ideavim

18
推荐指数
4
解决办法
7915
查看次数

使用调用跟踪调试Vim插件

调试/跟踪vim插件的首选方法是什么?假设我有一个相当复杂的插件Foo,在按下的键上F9打开带有文件浏览器的新窗口,并且可以选择一个文件,然后将文件名复制到主窗口中.当我按下F9键时,我希望看到所谓的呼叫,某种呼叫追踪.

vim vim-plugin

17
推荐指数
2
解决办法
9395
查看次数

Vim:打开预览/ quickfix时不要移动窗口内容

当水平拆分Vim窗口时,滚动"旧"窗口的内容以保留相对光标线位置.即使对于小的"帮助"缓冲区,例如quickfix或预览窗口,也会发生这种情况.

当重复打开和关闭分割时,由此引起的文本移动变得烦人 - 例如,完成插件使用的预览窗口.是否可以禁用此功能,并且在拆分时不要滚动旧窗口(除非必须保持光标线可见)?

示例 - 当前行为:

+--------------+              +--------------+
| a            |              | b            |
| b            |    copen     | c  (cursor)  |
| c  (cursor)  |     -->      | d            |
| d            |              +--------------+
| e            |              |  (preview)   |
+--------------+              +--------------+
Run Code Online (Sandbox Code Playgroud)

期望的行为:

+--------------+              +--------------+
| a            |              | a            |
| b            |    copen     | b            |
| c  (cursor)  |     -->      | c  (cursor)  |
| d            |              +--------------+
| e            |              |  (preview)   |
+--------------+              +--------------+
Run Code Online (Sandbox Code Playgroud)

vim vim-plugin

17
推荐指数
1
解决办法
487
查看次数

YouCompleteMe 不可用:需要使用 Python (3.6.0+) 支持编译的 Vim

我有 vim 8.2.850。我正在尝试安装 YouCompleteMe。但是在尝试打开 vim 时出现此错误:

"YouCompleteMe unavailable: requires Vim compiled with Python (3.6.0+) support"

我怎样才能解决这个问题?我看到其他人对不同版本的回答。但抱歉我是菜鸟,有人可以帮忙并详细解释如何修复它吗?

我在 Mac 上,使用终端

vim vim-plugin python-3.x youcompleteme

17
推荐指数
2
解决办法
3万
查看次数

括号<Plug>地图名称的原因是什么?

许多插件使他们的公共映射界面可以通过<Plug>地图访问.然后,用户可以将这些映射用作他们自己映射的钩子,例如:nmap <Leader>fu <Plug>fooPluginUnlinkRootDir.

最近我遇到了一些将地图名称放在括号中的插件,例如

此语法未在帮助文件中的任何位置记录,也不会使用任何捆绑的Vim运行时文件.不过,这些插件可以很好地完成它们的工作.

括号的动机是什么?使用它们有什么好处吗?是否应该鼓励插件作者遵循这种做法(作为最佳实践)?

vim vim-plugin

16
推荐指数
2
解决办法
1004
查看次数