用Vim书写整个字母表
有时我需要写整个字母表,我讨厌在Vim的插入模式下逐字输入。有没有更有效的方法用Vim书写整个字母表,vim,alphabet,Vim,Alphabet,有时我需要写整个字母表,我讨厌在Vim的插入模式下逐字输入。有没有更有效的方法 我知道ga命令,该命令提供光标所在字符的ascii码…但不知道如何将其与我的标准解决方案混合,以键入从1到(例如)5000的数字:a1escqyyp^Aq4998@q…这个命令怎么样: :put =join(map(range(char2nr('a'),char2nr('z')),'nr2char(v:val)'),'') 收集a到z范围内字符的ASCII值,然后将其映射到nr2char()函数上,并使用将结果插入
我知道
ga
命令,该命令提供光标所在字符的ascii码…但不知道如何将其与我的标准解决方案混合,以键入从1到(例如)5000的数字:a1escqyyp^Aq4998@q
…这个命令怎么样:
:put =join(map(range(char2nr('a'),char2nr('z')),'nr2char(v:val)'),'')
收集a
到z
范围内字符的ASCII值,然后将其映射到nr2char()
函数上,并使用将结果插入当前缓冲区:put=
当您省略包含的连接(
…,“”)
时,每个字符都在单独的一行上
看
- ,
- ,
- ,
- 然后在表中查找
、range()
、map()
和朋友join()
设置nrformats+=alpha
:
ia<Esc>qqylp<C-a>q24@q
iaqqylpq24@q
逐步:
ia<Esc> " Start with 'a'
qqylp<C-a>q " @q will duplicate the last character and increment it
24@q " Append c..z
ia“以a开头”
qqylpq“@q将复制最后一个字符并将其递增
24@q“附加c..z
如果您的shell不支持扩展,这是一个非常优雅的解决方案:
:r !printf '\%s' {a..z}
将外部命令的输出读入当前缓冲区。在本例中,它读取应用于
{a..z}的shell的printf
的输出
在它被shell扩展后。您可以尝试使用或使用一个完整的代码段管理器插件。设置可能需要一些时间,并且您必须再次键入该字母表以将其定义为缩写或代码段,但在这之后,您可以插入字母表或任何其他常见的文本块很容易重新设置。首先,设置nrformats+=alpha
然后:
我在解决问题时找到了一个较短的解决方案(您不需要事先更改格式)
iabcdefghijklmyiwg??P
这意味着:
插入字母表的前半部分iabcdefghijklm
复制它yiw
ROT13编码(移位13个字母)以获得下半部分g???
粘贴上半部分P
:inoreab abc abcdefghijklmnopqrstuvwxyz
:)如果你真的需要经常键入整个字母表,那么使用abbrev是最好的方法。调用它会更容易,然后必须记住编程方式。顺便说一句,如果你想从@glts复制序列,然后将其设置为垂直文本,请在该l上运行此命令ine:s/\(.\)/\1\r/g
…必须这样做…如果你没有在这里发布关于nrformats
的内容,那么这个选项肯定是我最后一次知道的!你使用这个选项是为了什么,这样你才知道它?是否可以以某种方式将增量用于书面数字,例如1
,2
,3
,等等?它工作得很好。但是为什么vim有类似于“g???”的功能?这需要没有代码高尔夫的任何其他原因吗?它工作得很好。但是为什么vim有类似于“g???”的功能?这需要没有代码高尔夫的任何其他原因吗?显然“在Usenet上,它曾经是编码破坏者的一种常见方式”(…也不要忘记vim有这样的东西”:微笑"...
ia<ESC>Y25p<CTRL-V>}g<CTRL-A>k26gJ
abcdefghijklmnopqrstuvwxyz
iabcdefghijklm<Esc>yiwg??P