Questions tagged «vimscript»

Vim中嵌入的脚本语言。它可以用来自定义Vim以适合您的需求并创建插件。也称为VimL。

1
如何在Vim中合并两个词典?
我有两个决定: :let defaults = {'hello': 'world', 'bye': 'jupiter'} :let override = {'hello': 'mars'} 如何合并来自的键,override以便最终得到一个新的字典,如下所示: {'hello': 'mars', 'bye': 'jupiter'}

1
将Vim输出显示为文本
我想知道是否有任何类似于的命令:TOhtml,但仅用于纯文本并代表整个Vim显示。 例如,给定显示: 它将创建以下文本文件: 1 B 1 a ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ N <me] [+] 100% 1:1 ~ 1 a ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ N <me] [+] 100% 1:1 N <e] [+] …
9 vimscript 

1
如何定义一个在输入时正在更新的运算符?
我已经定义了一个运算符映射,该映射使用文本区域,然后要求输入字符串,然后使用输入字符串作为参数将区域与Tabular对齐。效果很好。 我已经这样实现了,使用vim-operator-user来帮助定义一个新的运算符: map \aa <Plug>(operator-align) call operator#user#define('align', 'Align') function! Align(motion_wiseness) let expr = input("align: ") if len(expr) != 0 execute "'[,']Tabularize /".expr endif endfunction function! Getchar() let c = getchar() if c =~ '^\d\+$' let c = nr2char(c) endif return c endfunction 然后我想知道是否可以在输入要与之对齐的正则表达式时动态更新它。当前方法的问题是,如果使用的表达式不正确,则必须先撤消然后重做。 对于交互式尝试,我这样做: map \== <Plug>(operator-align-interactive) call operator#user#define('align-interactive', 'AlignInteractive') …
9 vimscript 

1
几行指令
有没有一种方法可以将单行指令分成几行? 例如,我想转型 setlocal variable_name = condition1 ? "1" : condition2 ? "0" : condition3 ? "a long string" : "another long string" 进入 setlocal variable_name = condition1 ? "1" : condition2 ? "0" : condition3 ? "a long string" : "another long string" 但是当我像上面那样尝试时,会引发“无效参数”错误。
9 vimscript 

1
正则表达式喜欢比赛中较短的比赛?(这比不贪婪更复杂)
我正在尝试创建用于在缓冲区内执行模糊搜索的脚本。主要思想是接受一些输入,然后.\{-}在每对字符之间插入,例如foo变为f.\{-}o.\{-}o。 这工作得很好,但是提出了很多不理想的比赛。我认为模糊搜索应该首先产生最短的匹配项。考虑以下示例: public void put() 对put(so,p.\{-}u.\{-}t)进行模糊搜索将匹配整个字符串public void put,但是该put匹配范围内的较短字符串会更有用。 非贪心运算符擅长查找较早结束的匹配项,但我需要同时可以偏向于较晚开始的匹配项的东西。从概念上讲,它在两个方向上都应该是非贪婪的。这可能吗?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.