Vim:选择文件后保持位置列表窗口打开

2023-12-29

我需要完全相反的行为这个问题 https://stackoverflow.com/questions/10846598/close-location-list-when-selecting-file。我的观察是,按下enter在位置列表窗口中的一行上,窗口将关闭,主窗口将显示所选文件的内容。相反,quickfix 窗口没有这种行为,即,它在选择后保持打开状态。

我检查了我的 autocmd,没有对位置列表或快速修复列表进行特殊处理。

一个例子 -:lgrep hi *填充位置列表。lopen打开位置列表窗口。按enter在任何线路上。


Syntastic 和位置列表窗口

合成的 https://github.com/scrooloose/syntastic默认情况下,当不存在错误时关闭位置列表窗口。因此,如果你使用类似的东西:lgrep它不会将任何结果标记为错误,然后一旦您离开位置列表窗口,位置列表窗口就会关闭,例如喜欢使用<cr>跳转到某个位置。

Syntastic 提供了一种通过以下方式进行调整的方法g:syntastic_auto_loc_list多变的。将其设置为0将禁用自动关闭功能。

在您的中设置以下内容vimrc file:

let g:syntastic_auto_loc_list = 0

要了解有关此变量的更多信息,请参阅::h 'syntastic_auto_loc_list'.

通用 Vim 调试

通常是测试您是否vimrc或者某个插件导致问题,因为它将功能与普通 vim 配置(或至少更普通)进行比较。通过在没有 vimrc 的情况下启动 Vim 来完成此操作。我使用以下调用:

vim -N -u NONE

一旦你以这种方式启动 Vim,你就可以测试你的 bug 并看看它是否存在。

  • 如果错误仍然存​​在,则意味着它可能是 Vim 本质的一部分或 Vim 本身的错误。在这种情况下,我建议您更多地阅读文档:h :help, :h :helpgrep, and :h bug-reports
  • 如果错误不存在,则错误是由于您的某些内容而发生的vimrc或插件。这通常意味着您需要禁用 vimrc/插件的部分内容才能尝试找到罪魁祸首。一种快速的方法是使用二分搜索。

调试稍微复杂一点:verbose

通常,通过使用更容易直接追踪错误:verbose查看最后设置的位置。 (看:h :verbose)

  • 映射将显示上次设置的位置。例如:verbose nmap <leader>foo. See :h :map-verbose and :h map-listing.
  • 设置也会显示上次设置的位置。例如:verbose set shiftwidth. See :h :set-verbose.
  • Autocomd 将显示它们最后定义的位置。例如:verbose autocmd BufEnter. See :h :autocmd-verbose and :h autocmd-list.

高级调试'verbosefile'

调试某些东西的另一种方法是使用'verbose'/:verbose and 'verbosefile'有效地记录 Vim 正在做什么。

使用示例:verbose and 'verbosefile'调试你的错误。

  • Do :lgrep command
  • 通过以下方式打开位置列表窗口:lopen
  • Set 'verbosefile' via :set verbosefile=~/verbose.txt
  • :15verbose normal <c-v><cr>
  • 现在通过打开日志文件:sp ~/verbose.txt
  • 搜索日志文件中是否有任何可疑内容。例如close or lclose在你的情况下
  • 一旦找到,它会向您显示autocmd或导致关闭的函数。
  • If autocmd看看修改一下。
  • 如果您可能需要查看某个功能:scriptnames找出与脚本本地函数关联的文件。看:scriptnames and :h <SID>.

我发现使用蒂姆·波普的脚本易.vim https://github.com/tpope/vim-scriptease通过提供使这个过程变得更容易:Verbose将设置的命令'verbosefile'以及随后在预览窗口中打开它。 Scriptease 还提供了一个很好的包装器:scriptnames via :Scriptnames。一般来说,scriptease.vim 提供了许多有用的方法来调试和重新加载插件。

更多帮助

:h 'syntastic_auto_loc_list'
:h syntastic
:h -u
:h -N
:h :help
:h :helpgrep
:h bug-reports
:h :map
:h map-listing
:h :set
:h set-option
:h :set-verbose
:h :autocmd-verbose
:h autocmd-list
:h 'verbose'
:h :verbose
:h 'verbosefile'
:h :scriptnames
:h <SID>
:h :normal
:h c_CTRL-V
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vim:选择文件后保持位置列表窗口打开 的相关文章

随机推荐

  • 为什么SmartGWT没有分页网格?

    很想知道为什么SmartGWT没有分页网格 它是所有企业应用程序必须具备的功能 我找到了 Serendipity 示例 但它在最新版本中不起作用SmartGWT 我可以期待未来支持分页的网格吗 目前 SmartGWT 不支持分页网格 但有多
  • 如何在Flutter中使用TextFormField的按键事件?

    有什么办法可以捕获文本字段中的按键吗 就我而言 当用户在文本字段内按回车键时 这些值将被存储 为此 我需要像 Kotlin Android 中那样使用 Keypress event 我这周才开始尝试 flutter 因为它很有趣而且是跨平台
  • 在c中的Linux套接字编程中从侦听和接受的连接中提取IP

    在下面的代码中 我想在接受传入连接后提取已连接客户端的 IP 地址 之后我应该做什么accept 实现它吗 int sockfd newsockfd portno clilen portno 8090 clilen 0 pthread t
  • 使用 UrlHelper.Action 方法生成 url 时出现空引用异常

    由于某种原因 当某些机器人访问该网站时 会生成一个带有UrlHelper Action方法引发空异常System Web HttpServerVarsCollection Get 我已经做了一些调试 调用堆栈开始尝试从以下位置获取 HTTP
  • 无法使用 android 4.4 旋转模拟器[重复]

    这个问题在这里已经有答案了 我已经将我的sdk更新到最新版本 android 4 4 并启动了模拟器 但现在似乎无法使用CTRL F11旋转屏幕 屏幕发生变化但所有应用程序都没有改变 我不知道这是否是一个相关问题 但我可以看到 即使我创建了
  • 可编辑的组合框,绑定到不在列表中的值

    我有可编辑的组合框 其中首选项目并不总是位于下拉列表中 我希望能够在文本框中手动输入文本 该文本将传播到绑定到 SelectedValue 的字符串 现在 仅当输入的值位于 ComboBox 项中的值中时 绑定到 SelectedValue
  • NameError:名称“N_TOKENS”未定义

    我是 Python 新手 刚刚开始安装 Windows 版 PyCharm 从 Skype 下载了一些示例代码来测试他们的 SkypeKit API 但是 一旦我按下调试按钮 我就会得到 我安装了 Python 2 7 和 Django 1
  • 从 Chrome 开发工具扩展检查 WebSockets 帧

    我想创建一个 Chrome 开发者工具扩展 一个新面板 来分析我们自己网站上的 WebSockets 框架 据我所理解 http developer chrome com extensions devtools network html h
  • SQL Server 中具有多列的“In”子句

    我有一个根据提供的键从数据库检索数据的组件 不过 我希望我的 java 应用程序能够获取单个数据库命中中所有键的所有数据 以加快速度 当我只有一把钥匙时 我可以使用 in 子句 在处理多个键时 我可以在 oracle 中使用以下查询 SEL
  • 如何显示数组中与另一个数组的值相关的值,javascript

    我试图让该名称与与该名称相关的分数一起显示 因此 如果最高分是 98 我希望 Joels 的名字出现在显示屏上 此处显示名字 var names Ben Joel Judy Anne var scores 88 98 77 88 var a
  • 获取日期期间最畅销的 10 种产品

    我想返回用户指定日期内销量最高的 10 种产品 数量最多 我的数据库表 Orders OrderId OrderDate 订单 产品 ProductID OrderID Quantity Products ProductID Product
  • 多线程 Java 应用程序的性能

    我想了解多线程环境中的性能 为此 我编写了一个小测试 在我的机器 四核 Intel Windows XP Sun JDK 1 6 0 20 上运行 结果令人惊讶 该测试基本上是一个线程安全计数器 使用以下任一方法进行同步synchroniz
  • 是否可以安排在特定日期和时间发布?

    我正在使用 Azure DevOps 发布管道来自动化部署 我想安排发布创建在特定的日期和时间进行 但根据下面的屏幕截图 只能选择一周中的几天 并且您不能将触发器指定为仅一次 这是一个问题 因为触发器将导致每周在指定的日期进行发布 并且我们
  • @synchronized vs. NSLock 实例 vs. pthread_mutex_t

    我正在观看一个关于多线程的 2 年前的 教程视频 其中指出 NSLock实例比使用快 3 倍 同步 pthread mutex t比 2 倍快NSLock实例 实际上比 同步 这是真的 我还没有找到任何权威的说法 但我只是想在 StackO
  • 将石墨指标偏移当前时间范围内的最低值

    我有带有 Graphite 指标的 Grafana 我有一个图表显示EnqueueCountActiveMQ 中的某些特定队列 问题是EnqueueCount显示自创建队列以来的所有值 因此当我将 Grafana 中的时间范围缩小到 今天到
  • 向 ggplot 图形添加文件名或其他注释

    我使用 ggplot 来制作大部分图形 这些可以是单面板 也可以是多面的 为了更容易跟踪修订 我想在绘图的角落生成一个包含一些文本的小标签 在伪代码中 我正在寻找这样的东西 generate the initial plot p lt gg
  • WPF/MVVM 在运行时加载用户控件

    我知道有很多关于我的问题的文章 但我找不到解决方案 我是 WPF MVVM 的新手 我尝试了解 MVVM 逻辑 所以我做了一个小项目来理解这一点 对于我以后的应用程序 我想将用户控件动态加载到我的窗口中 在我的 StartView 中 我有
  • UI 的可排序列表的动画过渡

    我正在与一个jQueryUI可排序列表 并且想要在以下情况下为过渡设置动画li当我向上或向下拖动元素时 s 会四处移动 作为Apple已经在他们的iPod app重新排列播放列表的歌曲时 这可能吗 我已经搜索了几个小时 但找不到任何有用的东
  • 立即启用保存文档 NSManagedObjectContext 吗?

    从 10 7 上带有 CoreData 模板的标准 Xcode 基于文档的应用程序开始 我遇到了一些令人沮丧的行为 我确信这是我忽略的简单事情 假设在我的 NSPersistentDocument 子类中 我有这样的东西 连接到窗口中的一个
  • Vim:选择文件后保持位置列表窗口打开

    我需要完全相反的行为这个问题 https stackoverflow com questions 10846598 close location list when selecting file 我的观察是 按下enter在位置列表窗口中的