gpt4 book ai didi

perl - .vim 文件夹中有存放文本过滤器的好地方吗?

转载 作者:行者123 更新时间:2023-12-02 00:13:53 26 4
gpt4 key购买 nike

我想创建一个过滤器文件夹,最好在 .vim 中并且能够运行一个只有一个文件名的文本过滤器:!过滤器.pl

我设置了一个 Perl 文本过滤器来更改 LaTeX 数学公式中的所有特殊字符,到目前为止运行良好 - 唯一的问题是它在整行而不是选定的公式上运行,但我可以忍受它.. .

#!/usr/bin/perl -np

use strict;
use warnings;

# this filter transforms all special characters in Mathformular for LaTeX

s/\\/\\backslash /g;
s/([\$\#&%_{}])/\\$1/g;

但是调用这个过滤器很麻烦

: '<,'>!"/Users/username/Library/Mobile Documents/com~apple~CloudDocs/my_vim_cheat_sheet/perl_filter.pl" 

Apple 在 iCloud 的路径中放置了一个空白区域,所以我必须在周围加上“”!我在哪里放置文本过滤器的集合?

谢谢你的回答

马可

最佳答案

您可以安全地创建一个与 Vim 本身不同的名称的子文件夹 (参见 :h 'rtp' )。所以这没关系:

:*!$HOME/.vim/filters/perl_filter.pl

此外,Vim 还为通用过滤器提供了一个预定义接口(interface),称为“equalprg”。要使用它,只需设置一个全局-本地(即 setsetlocal 都有意义)选项 equalprg到脚本的完全限定名称。然后打=在可视模式下应用过滤器(或 ={motion} 在正常模式下)。 (阅读 :h 'equalprg' :h = )。

如果您同时需要多个过滤器,并切换 equalprg不方便,您仍然可以尝试不同的选项来减少输入。

比如映射,比如

vnoremap <Leader>f :!/path/to/my/filter<CR>

然后点击\f (或任何你的“领导者”键集)在可视模式下将导致执行 :'<,'>!/path/to/my/filter (请注意,视觉选择将自动应用)。

另一种尝试是设置一个专用的环境变量(它将被包括shell在内的所有子进程继承。例如,

:let $filters = '~/.vim/filters'
:*!$filters/myfilter.pl

当然,你可以把那些set equalprg=... vnoremap ... let $filters=...等等等等在你的 vimrc 中。

关于perl - .vim 文件夹中有存放文本过滤器的好地方吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57645348/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com