我正在尝试更新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)
现在针对具体问题.
pluginvs ftplugin?plugin和之间有什么区别autoload?after/...而不是直接放在目录下~/.vim?现在我正在清理我的.vimrc文件,以确保它在大多数系统上兼容.
在我的状态行中,我使用另一个插件设置的GitBranchInfoString()函数,该插件引入的函数.
我想做的是检查是否设置了此功能,然后将其添加到状态行.这将是它自己的行,所以我只需要检查它.
实现这一目标的最简单方法是什么?
感谢你的帮助!
编辑:
我有以下内容:
if exists('*GitBranchInfoString')
let &stl.='%{GitBranchInfoString()}'
endif
Run Code Online (Sandbox Code Playgroud) 我正在尝试在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)
我该怎么办?
我在为FZF vim插件中的最新文件找到合适的解决方案时遇到问题.
这个插件应具有以下功能:
我试过两个解决方案
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) 我想在我的Pycharm IDE中使用Tim Pope的vim 环绕插件.我一直在使用Pycharm的IdeaVim插件来使用vim运动和命令.
我知道我可以使用~/.ideavimrc像我正常的.vimrc,但我无法找到有关如何使用插件与ideavim信息.
我可以在我的内部指定插件目录,~/.ideavimrc还是必须采用其他方式?我可以像病原体一样使用插件管理器吗?
调试/跟踪vim插件的首选方法是什么?假设我有一个相当复杂的插件Foo,在按下的键上F9打开带有文件浏览器的新窗口,并且可以选择一个文件,然后将文件名复制到主窗口中.当我按下F9键时,我希望看到所谓的呼叫,某种呼叫追踪.
当水平拆分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 8.2.850。我正在尝试安装 YouCompleteMe。但是在尝试打开 vim 时出现此错误:
"YouCompleteMe unavailable: requires Vim compiled with Python (3.6.0+) support"
我怎样才能解决这个问题?我看到其他人对不同版本的回答。但抱歉我是菜鸟,有人可以帮忙并详细解释如何修复它吗?
我在 Mac 上,使用终端
许多插件使他们的公共映射界面可以通过<Plug>地图访问.然后,用户可以将这些映射用作他们自己映射的钩子,例如:nmap <Leader>fu <Plug>fooPluginUnlinkRootDir.
最近我遇到了一些将地图名称放在括号中的插件,例如
<Plug>(textobj-indent-a)在textobj-indent插件中,<Plug>(LineJugglerBlankUp)在LineJuggler插件中.此语法未在帮助文件中的任何位置记录,也不会使用任何捆绑的Vim运行时文件.不过,这些插件可以很好地完成它们的工作.
括号的动机是什么?使用它们有什么好处吗?是否应该鼓励插件作者遵循这种做法(作为最佳实践)?
vim ×10
vim-plugin ×10
nerdtree ×2
fzf ×1
ideavim ×1
mru ×1
neovim ×1
pycharm ×1
python-3.x ×1
windows ×1