标签: vim-plugin

gVim中的插件无法正常工作

我需要帮助在Vim中安装一些流行的插件.我刚刚开始学习这个编辑器,并且很高兴使用流行的插件.我在Windows XP中使用gVim并提取了.vim文件并将它们复制到Vim的Program Files文件夹中.

在我的"F:\ Program Files\Vim"文件夹中,正好有两个文件夹" vim73 "和" vimfiles "文件夹.我将.vim文件(EasyMotion.vim)放入"vimfiles"文件夹中的"plugin"文件夹中.

当我运行gVim时,插件不起作用,在我的情况下,EasyMotion插件无效.我键入"/ w"以使EasyMotion插件工作(如其在github帐户上的使用所述)并且似乎没有任何效果.

我错过了什么吗?是否有额外的命令放入vimrc文件来识别这些插件?

干杯!

vim vim-plugin

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

如何找出当前colorscheme用于某些东西的某个颜色值?

我需要这个才能完成我正在制作的插件,以便根据模式更改状态行的颜色.

但是我遇到了一个明显的问题,我怎么知道用户使用的是什么主题?即使我知道我不能为每个主题制作特定的颜色.

因此,如何知道当前主题用于状态行的前景色和背景色.

编辑1:

如果我不清楚,我正在寻找一种方法来找出ctermfg/ bgguifg/ bg某些东西.现在是状态线.:)

编辑2:

显然,如果我这样做,:hi StatusLine我得到了我需要的东西,但是我需要改进它以获得唯一的价值,而不是全部.我猜我必须使用一些正则表达式来找出价值.如果有人知道更简单的方法,请分享它(或者如果你已经用正则表达式弄明白的话).谢谢!

vim vim-plugin statusline

7
推荐指数
1
解决办法
1132
查看次数

跳转到Vim中当前行的quickfix或位置列表中的错误(使用Syntastic)

我开始使用Vim 的Syntastic插件,它将在当前缓冲区上运行语法检查器,然后指出任何有错误的行.我可以打开错误列表,如使用位置列表:Errors,然后通过点击Enter跳转到给定错误的行,这将跳转到包含缓冲区中错误的行.

我想知道如何做相反的事情.我想从我的缓冲区内的一行标有有语法错误在位置列表中的相应条目,这样我就可以在列表中读取完整的错误消息去了.我怎样才能做到这一点?我知道这:ll [n]将跳转到n列表中的第th个错误,但通常我不确切地知道哪个错误号对应于缓冲区中的给定行.但是,我找不到接受行号而不是错误号的命令.

vim vim-plugin syntastic

7
推荐指数
2
解决办法
5800
查看次数

YCM找不到我的标题?

我有以下文件夹结构:

.
??? include
?   ??? ctset
?       ??? hashtable.h
?       ??? set.h
??? src
    ??? hashtable
        ??? hashtable.c
Run Code Online (Sandbox Code Playgroud)

hashtable.c包含中#include "ctset/hashtable.h",但YCM一直告诉我它不知道我在标题中定义的类型并在源代码中使用.

.ycm_extra_conf.py几乎是默认的一个调整:

# This file is NOT licensed under the GPLv3, which is the license for the rest
# of YouCompleteMe.
#
# Here's the license text for this file:
#
# This is free and unencumbered software released into the public domain.
#
# Anyone is free to copy, modify, publish, use, compile, …
Run Code Online (Sandbox Code Playgroud)

c python vim header-files vim-plugin

7
推荐指数
1
解决办法
6596
查看次数

在vim中使用ropevim插件的ImportError ropevim

根据rope-vim插件的文档,我安装了python-rope和python-ropemode模式包.但是,当我尝试使用vim打开一些文件时,我得到以下ImportError:

 Error detected while processing function LoadRope:
 line    4:
 Traceback (most recent call last):
   File "<string>", line 1, in <module>
 ImportError: No module named ropevim
Run Code Online (Sandbox Code Playgroud)

我在插件的目录中找到了ropevim模块,但是当我尝试导入它时:

python -c "import ropevim"
Run Code Online (Sandbox Code Playgroud)

我得到另一个ImportError:

Traceback (most recent call last):
File "<string>", line 1, in <module>
File "ropevim.py", line 10, in <module>
  import vim
ImportError: No module named vim
Run Code Online (Sandbox Code Playgroud)

我有没有错过任何包裹?一些想法?谢谢你的帮助.

python vim vim-plugin

7
推荐指数
2
解决办法
1534
查看次数

如何在Windows环境中安装Vim插件

我刚刚开始使用Vim,并使用http://vimawesome.com/推荐的一些插件来设置环境。我下载并放置了plugin.vim,C:\Program Files\Vim\vim74\autoload 然后C:\Program Files\Vim\vimfiles\plugin放入git master分支nerdtree-master并将其重命名为nerdtree。在_vimrc文件中,这是可行的,我把

Plug 'scroloose/nerdtree
Run Code Online (Sandbox Code Playgroud)

Plug 'nerdtree
Run Code Online (Sandbox Code Playgroud)

这些命令都不起作用。我收到此错误:

Error detected while processing C:\Program Files\Vim\_vimrc:

line    7:

E492: Not an editor command: Plug 'nerdtree'

Error detected while processing
C:\Program Files\Vim\vim74\plugin\nerdtree\lib\nerdtree\path.vim:
Run Code Online (Sandbox Code Playgroud)

windows vim vim-plugin

7
推荐指数
1
解决办法
9065
查看次数

更换缓冲区时,防止光标跳到底部

我有内容存储在out我想用当前缓冲区替换的variable()中.我现在正在这样做(简化版):

let splitted = split(out, '\n')
if line('$') > len(splitted)
    execute len(splitted) .',$delete'
endif
call setline(1, splitted)
Run Code Online (Sandbox Code Playgroud)

(详细:https://github.com/fatih/vim-go/blob/master/autoload/go/fmt.vim#L130)

但是setline()这会导致某些机器的速度变慢,并且https://github.com/fatih/vim-go/issues/459.我自己也对它进行了描述,但对我来说,setline不是问题.无论如何,我需要一个更快的解决方案.所以我想出了其他几个解决方案.

第一个是将输出放到寄存器中,删除所有行然后将其放回:

let @a = out
% delete _
put! a
$ delete _
Run Code Online (Sandbox Code Playgroud)

第二个解决方案是使用append()(之前在vim-go https://github.com/fatih/vim-go/commit/99a1732e40e3f064300d544eebd4153dbc3c60c7中使用过):

let splitted = split(out, '\n')
%delete _
call append(0, splitted)
$delete _
Run Code Online (Sandbox Code Playgroud)

他们工作!然而,它们都会引起副作用,我仍然无法解决,也写在标题中.问题描述如下:

如果在另一个视图中打开缓冲区(比如旁边的那个),我们调用上面两个解决方案中的一个,它会打破另一个视图的光标并跳转到底部

这是一个更好的GIF(每当我调用:w上面的一个程序时):http://d.pr/i/1buDZ

有没有办法,替换缓冲区的内容,这是快速的,不会打破布局?或者我如何使用上述程序之一阻止它?

谢谢.

vim vim-plugin

7
推荐指数
1
解决办法
257
查看次数

vim-rmarkdown 插件配置

我刚刚安装了 vim-rmarkdown、vim-pandoc 和 vim-pandoc-syntax 插件以及 Vundle(最新的 github 版本)。

当我在 vim 中打开 RMarkdown 文件 (.Rmd) 时,正如预期的那样,它检测到文件类型为 rmarkdown;正如我在示例 vim-rmarkdown 屏幕截图中看到的那样,它用 lambda 符号等标记了 R 代码块的开始(替换了 ```)。

让我抓狂的是 vim 决定突出显示一些字符串(无益地完全模糊文本,好像它被编辑了一样)。我通常会点击空格来清除搜索词的突出显示;不是这样。它还隐藏了 R 块的终止```;只有当您将光标移到该行上时,它们才可见。

任何人都可以帮助:

  1. 指向 vim-rmarkdown 常见问题解答/文档的指针(:h rmarkdown 只调用您在 github 页面上获得的相同基本信息),
  2. 为什么它会覆盖(用纯色突出显示)一些文本以及如何阻止它,
  3. 如何显示 R 代码块 (```) 的结尾,或者更好地区分“文本”和 R 代码块。

根据可用的 vim-rmarkdown 文档,我在 .vimrc 的开头添加了以下内容

set nocompatible              " be iMproved, required
filetype off                  " required

" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" alternatively, pass a path where Vundle …
Run Code Online (Sandbox Code Playgroud)

vim r vim-plugin r-markdown

6
推荐指数
1
解决办法
2844
查看次数

Vim : youCompleteme 插件打开一个带有函数定义的拆分窗口

我刚刚下载并使用 vim 的 YCM 插件进行了说明。但是我注意到,每当自动完成弹出并给出完成建议时,我的当前窗口中也会打开一个拆分窗口。关于如何配置 YCM 以不打开拆分窗口的任何建议?或者至少在我选择某些东西时关上窗户。

vim macvim vim-plugin youcompleteme

6
推荐指数
1
解决办法
3716
查看次数

Vim全局变量检查在lua中抛出错误(neovim插件开发)

我正在尝试使用 lua 编写一个 neovim 插件,当检查变量是否存在时,lua 抛出一个错误,如下所示:Undefined variable: g:my_var

方法一:

local function open_bmax_term()
    if (vim.api.nvim_eval("g:my_var")) then
        print('has the last buff')
    else
        print('has no the last buff')
    end
end
Run Code Online (Sandbox Code Playgroud)

方法二:


local function open_bmax_term()
    if (vim.api.nvim_get_var("my_var")) then
        print('has the last buff')
    else
        print('has no the last buff')
    end
end
Run Code Online (Sandbox Code Playgroud)

这是一个类似的函数,它viml可以工作:(这不会引发任何错误)

fun! OpenBmaxTerm()

    if exists("g:my_var")
        echo "has the last buff"
    
    else
        echo "has no the last buff"
    endif
endfun
Run Code Online (Sandbox Code Playgroud)

知道如何让它在 lua 中工作吗?我尝试将条件包装在 a 中pcall,其效果就像使其始终为真。

lua vim-plugin neovim

6
推荐指数
2
解决办法
6949
查看次数