因此,我使用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 默认保存。