使用VI创建文本标题

时间:2009-07-22 14:40:25

标签: vi

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

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

任何vi voodoo都有?一个更好的方法?

2 个答案:

答案 0 :(得分:7)

您可以使用:center(在vim中)使当前行居中。然后使用'R'填写后面的星号。仍然没有快速或神奇,但至少它可以让你免于计算角色。

所以步骤是:

  1. 输入标题
  2. :中心
  3. '0'回到行首
  4. 'R'覆盖模式,在空格上添加星号
  5. 进一步测试后,您需要打开“set expandtab”,否则将使用tabstops进行居中,最后用单个字符替换它们,从而取消居中。

答案 1 :(得分:2)

以下是要在旧版.exrc的{​​{1}}文件中添加的宏:

vi

(使用序列map £ A ^[80A£§^[080lD:s/§//g^M$byw0Pa ^[080lD:s/£/*/g^M0R# ^[^M 后跟^[获得了CTRL-V的输入。键入ESC的序列为^M,后跟CTRL-V })

这个想法是:

  • 用两个字符的模式(ENTER填充不太可能出现在代码中的字符)填充行尾,重复80次(即160个字符)
  • 删除80行以上的所有内容
  • 移除一半模式(£§已移除,§仍然存在)
  • 将剩余模式复制到行的开头
  • 用方便的方式替换模式

要使用宏,请将光标放在要居中的行上,然后键入£。您可以通过更改宏名称£

来选择任何字符,例如@