用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()函数上,并使用将结果插入

有时我需要写整个字母表,我讨厌在Vim的插入模式下逐字输入。有没有更有效的方法


我知道
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
    复制它
  • g???
    ROT13编码(移位13个字母)以获得下半部分
  • 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