调整 vim 的 less.sh:启用持久搜索历史记录

调整 vim 的 less.sh:启用持久搜索历史记录

因此,我使用vim'sless.sh代替标准less寻呼机:

alias less=/usr/share/vim/vim81/macros/less.sh

然而,我对此有一个大问题和一个小问题。

主要问题是它不保存搜索历史记录。如果我用 打开文件less.sh,搜索一些字符串,它们不会保留到下一次less.sh调用。相反,它们会被丢弃,并使用常规调用收集的历史记录vim。有没有办法在 中打开搜索历史记录保留功能less.sh

小问题是它less.sh不允许打开同一个文件两次,也就是说,它会尝试创建一个.swp文件并抱怨该文件已被编辑。尽管它less.sh不允许对正在查看的文件进行任何修改,也就是说,它不会进行编辑。我希望它是无状态的。

答案1

搜索历史将存储在:help 'viminfo'

您需要编辑less.sh或复制它(定义新的别名)并添加|set viminfo='50,/50到两行的末尾。您还必须将封装的引号更改为,"因为 viminfo 会使用'--cmd字符串。这样我们就不必进行任何难看的反斜杠转义了。

vim --cmd 'let no_plugin_maps = 1' -c "runtime! macros/less.vim|set viminfo='50,/50" 
  • '50记住的标记数(定义 viminfo 时需要它)
  • /50是搜索历史

我想你也可以修改macros/less.vim,以避免覆盖|set viminfo='50,/50

大约runtime/macros/less.vim第 45 行

set viminfo=

是清除设置的行'viminfo',通常由 Vim 默认保存。

相关内容