3

有没有办法在 VI 中轻松创建文本标题?我想创建一个如下所示的标题,而不必为了居中而计算字符。

# ********** a centered title **********

有任何 vi 巫术吗?更好的方法?

4

2 回答 2

7

您可以使用 :center (在 vim 中)使当前行居中。然后在事后使用“R”填写星号。仍然不是快速或神奇,但至少它可以让你免于计算字符。

所以步骤是:

  1. 输入标题
  2. :中央
  3. '0' 回到行首
  4. 'R' 覆盖模式,在空格上加上星号

在进一步测试后,您需要打开“set expandtab”,否则居中将使用制表位,您最终会用单个字符替换它们,从而取消居中。

于 2009-07-22T14:50:26.137 回答
2

.exrc这是一个添加到old 文件中的宏vi

map £ A ^[80A£§^[080lD:s/§//g^M$byw0Pa ^[080lD:s/£/*/g^M0R# ^[^M

(键入^[是通过CTRL-V后跟的序列获得的ESC。键入^M是通过CTRL-V后跟的序列获得的ENTER

这个想法是:

  • £§用重复 80 次(即 160 个字符)的两个字符模式( , 不太可能出现在您的代码中的字符)填充行尾
  • 删除超过 80 个字符的所有内容
  • 删除一半的模式(§被删除并£保留)
  • 将剩余模式复制到行首
  • 用任何方便的方式替换模式

要使用宏,请将光标放在要居中的行上,然后键入£. 您可以选择任何字符,例如,@通过更改宏名称:map @ ...

于 2009-07-22T15:19:06.230 回答