Vim 中的合成视图和分割视图处理

2023-12-28

最近,我开始使用 syntastic,因为它大大简化了开发。

唯一真正困扰我的是它如何处理分裂视图。

我也使用 NERDtree 插件,每当我在 vsplit 视图中打开另一个文件时,就会发生以下情况:

---------------------------------------------------------
|        |                   |                          |
|NERDTree|    file           |                          |
|        |                   |       file               |
|        |                   |                          |
|        |--------------------                          |
|        |   syntastic       |                          |
---------------------------------------------------------
|                                                       |
|                 syntastic                             |
|                                                       |
---------------------------------------------------------

有没有办法摆脱额外的小合成瓷砖?

我宁愿有两个小图块(每个文件一个),或者只有一个图块显示当前活动文件图块的信息。


NerdTree 经常妨碍良好的分割/窗口工作流程。那么你有没有想过不使用NerdTree?

NerdTree 的一些问题:

  • 浪费空间。你多久一次need看看你的文件结构? 10%的时间?较少的?
  • Vim 没有“项目抽屉”的概念。这意味着 NerdTree 竭尽全力模仿“Project Drawer”行为,但最终失败了。
  • 拆分导航 - 品牌<c-w>t没那么有用。与其他工作流程相比,通常会导致使用更多的窗口导航命令。
  • NerdTree 在重新排列分割时表现不佳。创建一些分割然后执行<c-w>J or <c-w>H。看看它如何扰乱你的布局。这就是您在 syntastic 中遇到的情况。

Vim 之道

正如在Vimcasts http://vimcasts.org/ post, 油与醋——分割窗口和项目抽屉 http://vimcasts.org/blog/2013/01/oil-and-vinegar-split-windows-and-project-drawer/, Vim 更喜欢在您打开文件浏览器时need然后当它离开它时不需要。您也可以以这种方式使用 NerdTree,只需忘记始终打开的文件浏览器位即可。在 vim 中打开文件还有其他方法:

  • 使用文件补全,通过<tab>,使用类似命令:e and :sp
  • Use <c-d>代替<tab>获取完成列表
  • :e and :sp命令采用全局变量。例如:e *.c and :e foo/**/bar.c
  • :find和设置'path' and 'suffix' options
  • Ctags 或 cscope 跳转到标签
  • gf将转到光标下的文件
  • 研究模糊查找器,例如CtrlP https://github.com/kien/ctrlp.vim, 命令-T http://www.vim.org/scripts/script.php?script_id=3025, or Unite https://github.com/Shougo/unite.vim
  • 通过创建项目特定的导航放映员 https://github.com/tpope/vim-projectionist (Rails https://github.com/tpope/vim-rails就是一个很好的例子)

就我个人而言,我会发现一个很好的模糊文件查找器开始将 NerdTree 从您的工作流程中淡出。

Vim 很高兴。确保尽可能有效地使用拆分。分割命令有很多,参见:h opening-window。更好地阅读全文:h window帮助文件,里面有很多宝藏。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vim 中的合成视图和分割视图处理 的相关文章

随机推荐

  • Rails 4.2 - Sidekiq 在开发中不发送电子邮件

    我有一个 Rails 应用程序 其中有一个方法可以发送大量电子邮件 我想执行此操作asynchronously 为此 我尝试使用Sidekiq 但我无法让它正常工作 它不发送任何电子邮件 以前可以发送电子邮件 因此我确信我的电子邮件设置设置
  • 如何管理 kubernetes 服务部署的部署配置(yaml 文件)

    其次 为了将容器镜像部署到kubernetes 我们通常制作部署配置 yaml文件 现在 这些对于登台和开发环境可能有所不同 并且随着一些新功能的出现 可能会出现一些系统环境变量 这些变量需要存在于 yaml 中 我的问题是 1 How y
  • 可以通过 Terraform 为 Cloud Function 设置机密吗?

    地形google cloudfunctions function资源文档列表秘密环境变量 https registry terraform io providers hashicorp google latest docs resource
  • wcf System.ServiceModel.AddressAlreadyInUseException

    如果这个问题在 stackOverflow 上出现两次 我们深表歉意 我正在尝试在 Windows Server 2003 机器上运行 WCF 服务 我得到了System ServiceModel AddressAlreadyInUseEx
  • 删除查询 SPARQL FUSEKI

    如何删除给定 uri 的所有三元组语句 我的图表包含 PREFIX mo
  • 如何在 Ruby 中通过 HTTP 进行基本身份验证?

    经过大量查找后 我发现了一些似乎有效的解决方案 但不适合我 例如 我有这个脚本 require net http require net https http Net HTTP new www xxxxxxx net 443 http us
  • 连接两个 NSDate 字符串值 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我只是感到困惑的是 是否有任何默认功
  • 什么时候应该使用对象而不是 json 对象?

    我正在用java设计一个程序 其中 许多对象只是数据包 并不真正需要任何非静态方法 我想轻松地从硬盘驱动器保存和加载对象 某些对象实例将需要一个附加属性 我可能会随着时间的推移添加或删除该属性 如果某些对象确实具有附加属性 那么大多数时候我
  • Windows NDIS 驱动程序分析

    我正在研究 Windows 10 上的 NDIS 筛选器驱动程序的性能分析 为此 我使用 Windows 性能记录器 WPR 和 Windows 性能分析器 WPA 我可以看到进程的 CPU 使用情况图 但我对驱动程序代码中的负载点感兴趣
  • 当系统中安装了多个php版本时,如何使用pecl为特定php版本安装php扩展?

    我已经根据本手册在 Ubuntu 上从 PPA 安装了 php5 6 和 php7 0 http lornajane net posts 2016 php 7 0 and 5 6 on ubuntu http lornajane net p
  • 将参数传递给powershell脚本

    我正在尝试从运行对话框运行 powershell 脚本 将用作计划任务 但在传递参数时遇到问题 该脚本将采用两个参数 名为 title 和 msg 该脚本位于 D Tasks Scripts Powershell script ps1 这就
  • 在 pandas 中删除 nan 行的更好方法

    我自己找到了一种从 pandas 数据框中删除 nan 行的方法 给定一个数据框dat带柱x其中包含 nan 值 是否有更优雅的方法来删除每一行dat其中有一个 nan 值x column dat dat np logical not np
  • XE6 如何检查 UnicodeString 是否为 null?

    我在用着C Builder XE6 我得到了一个UnicodeString作为参数 我希望检查字符串是否设置为 NULL 而不是空字符串 我尝试做一些简单的比较来查看参数是否为空 但似乎失败了 我正在使用 运算符似乎不起作用 这让我认为它超
  • Enter 事件不会在使用 Angular 的 Android 设备上触发该功能

    有多个问题的答案与我的问题相关 但不幸的是 没有一个对我有用 我必须检测 Android 键盘上按下的 Enter 并将焦点从当前 matInput 更改为下一个 matInput 我努力了keyup enter keydown and k
  • 如何在 AWS CDK 中使用 CloudFrontWebDistribution 启用 SecurityHeaders 的托管响应标头策略?

    我有一个CloudFrontWebDistribution在我的打字稿中的 AWS CDK 基础设施代码中 const cloudFrontDistribution new cloudfront CloudFrontWebDistribut
  • (404 Not Found)加载http://localhost:4200/angular2-datatable/datatable

    我正在尝试使用以下方法制作一个可排序的表this https www npmjs com package angular2 datatable 我已按照说明进行操作 看来我已经安装了angular2 datatable datatable正
  • 智能卡读卡器命名

    我的系统中有两个读卡器 HID OMNIKEY 5321 每个读卡器执行不同的功能 读卡器 1 智能卡读卡器0 读卡器 2 智能卡读卡器1 在我的程序中设置了 智能卡读卡器0 动作 1 智能卡读卡器1 动作 2 但有时 无需重新启动 可能失
  • 如何将流 (FILE *) 与 stdout 关联?

    现在每个模块都在写入 stderr 因此我无法关闭单个模块的输出 有谁知道如何将流与标准输出关联起来 这样每个模块都会写入独立的流 这样我就可以将其关闭 例如 fprintf newStdout hello newStdout正在向屏幕写入
  • 如何修复 Vim 中的 Home 和 End?

    我在 gnome terminal 2 26 0 中使用 vim 虽然我 95 的时间使用 导航到 EOL 使用 0 导航到相反的位置 但时不时地我会点击 Home 或 结尾 当我使用 Home 时 当前行中的文本会向下移动 使当前行处于插
  • Vim 中的合成视图和分割视图处理

    最近 我开始使用 syntastic 因为它大大简化了开发 唯一真正困扰我的是它如何处理分裂视图 我也使用 NERDtree 插件 每当我在 vsplit 视图中打开另一个文件时 就会发生以下情况 NERDTree file file