在VIM中是否可以突出显示用户在文件中添加/更改的某些文本的部分内容?
以下情况证明了这一点:
等等。
我正在寻找一个最紧凑的解决方案 - 它应该是一个选项还是一个简单的vim脚本。
答案 0 :(得分:1)
如果您正在编辑的文件是Git存储库的一部分,则VIM插件vim-gitgutter将指示已添加/删除/更改的行。这可能符合您的需求。
答案 1 :(得分:1)
Vim会跟踪并维护一个撤消历史记录,记录对文件所做的所有更改。您可以使用像“sjl/gundo.vim”这样的插件,它可以让您查看文件后续更改的差异(非常方便)。
如果你把文件保存在vcs下,比如git,你也可以看到差异。对于git你应该使用'tpope/vim-fugitive'然后你可以用几种不同的方式查看差异,最常见的是:Gdiff
答案 2 :(得分:1)
对于此类差异报告,最好使用修订控制系统。然后,您问题中的数字会干净地映射到修订号,并且确实有插件可以显示这些差异(也可以跨多个修订,以及日志消息等形式)。
vcscommand.vim - CVS/SVN/SVK/git/hg/bzr integration plugin支持所有广泛使用的系统,并以临时缓冲区中的 vimdiff 或统一差异的形式提供此功能。还有插件(vim-signify - Advanced plugin for showing VCS diffs in the SignColumn或GitGutter for Git)可以在符号列中整齐地显示它。
如果您不能/不能使用版本控制系统,则会有插件显示已保存版本的差异(但不会跨保存,因为此信息为不可用)。
如果您想要一个可以执行此操作的轻量级,仅限Vim的版本控制系统解决方案,请查看我的writebackup plugin和writebackupVersionControl plugin插件,它们也提供vimdiffs /统一差异,而不需要基础修订控制系统。
答案 3 :(得分:1)
您可以保留原始文件的备份,然后:vsplit file.bak
,在两个缓冲区中执行:diffthis
。