检查视觉模式当前处于活动状态(视觉或视觉阻止)的vimscript的最佳方法是什么?
我读过mode()但我不能让它发挥作用.
echo mode()对我
if mode() == "v"不起作用也不适合我.
我经常使用命令或脚本来删除文本,在我取消删除之后(u)我想看看之前删除的命令/脚本.
使用undelete命令时是否可以突出显示以前删除的文本?(或者甚至更好地匹配查找"/"命令中之前删除的文本)
如何在vim中右对齐(并左对齐?)一个数字或文本块,如下所示:
从:
45 209 25 1
2 4 2 3
34 5 300 5
34 120 34 12
Run Code Online (Sandbox Code Playgroud)
对此:
45 209 25 1
2 4 2 3
34 5 300 5
34 120 34 12
Run Code Online (Sandbox Code Playgroud)
这意味着每列中的最大数字或最大字符串不会移动.
在第一列中,它是45 + 34,在第二列209 + 120中,在第三列300中和在最后一列12中.
我在Vim中知道这些命令:
J:在当前行
-J 之后加入下面的行:在上面的行之后加入当前行
但是如何在当前行之后加入上面的行?
我正在尝试插入命令
将命令历史记录复制到剪贴板q::%y
将搜索历史记录复制到剪贴板 q/:%y
在 vim 脚本中执行此操作:
:normal q::%y
:normal q/:%y
Run Code Online (Sandbox Code Playgroud)
但它没有复制任何东西
为什么?
(当我手动执行时效果很好(q::%y q/:%y))
我想知道是否可以删除直到另一行上的模式开始.
PE
是否可以从光标"|"中删除 在第1行直到"第7行的世界?"(保持正常模式)
我经常这样做.通常我使用"dd"来删除第1行和第7行之间的所有行,然后删除到单词"dfw"但如果我在第347行并且我的文本在381上,则这很难.我必须计算两者之间的界限.他们经常删除一行太多.
我无法找到如何加入所有行直到下一个条件发生(一行只有一个或多个数字)pe
输入:
1
text text text text (with numbers)
text text text text (with numbers)
2
this text
text text text text (with numbers)
text text text
3
text text text text (with numbers)
4
etc
Run Code Online (Sandbox Code Playgroud)
渴望输出:
1 text text text text (with numbers) text text text text (with numbers)
2 this text text text text text (with numbers) text text text
3 text text text text (with numbers)
4
etc
Run Code Online (Sandbox Code Playgroud)
我通常使用global/^/,+2 join但在上面的例子中,加入的行数并不总是3.
该命令J连接行.
该命令gJ连接删除空格的行
是否还有一个命令来连接线在线之间添加分隔符?
例:
输入:
text
other text
more text
text
Run Code Online (Sandbox Code Playgroud)
我想做的事情:
- 选择这4行
- 如果开始时有空格和/或EOL删除它们
- 连接行在它们之间添加分隔符'//'
输出:
text//other text//more text//text
Run Code Online (Sandbox Code Playgroud) 例:
function! MyFunction()
exe 'call Include("'.mykeyw.'")'
Return value???
endfunction
function! Include(keyw)
if condition == ""
return 0
endif
endfunction
Run Code Online (Sandbox Code Playgroud)
如果调用returnin Include(),我也想停止执行MyFunction()
.
似乎除了return从Include()MyFunction中检查return语句中的值之外别无他法.
但我怎么检查从返回值Include()的MyFunction()?
PE在这种情况下,我该如何捕捉return从值"0" Include()的MyFunction()?
我知道可以创建一系列数字列表:
list(range(0,20,1))
output: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
Run Code Online (Sandbox Code Playgroud)
但我想要做的是增加每次迭代的步骤:
list(range(0,20,1+incremental value)
Run Code Online (Sandbox Code Playgroud)
增量= +1时的pe
expected output: [0, 1, 3, 6, 10, 15]
Run Code Online (Sandbox Code Playgroud)
这在python中可能吗?