在vim中的Strikeout文本?

时间:2011-12-13 00:31:07

标签: vim vi macvim

Vim(有或没有插件 - 我不在乎)是否支持删除线文字?我发现自己在其中保留了一份“TO-DO”的运行列表,并且希望能够通过删除文本“交叉”完成我已完成的项目。

谢谢!

8 个答案:

答案 0 :(得分:19)

如果您正在使用Unicode文本,则可以使用组合字符来实现此目的。以下文章描述了如何在gvim中实现这一目标:

http://vim.wikia.com/wiki/Create_underlines,_overlines,_and_strikethroughs_using_combining_characters

您需要确保字体gvim正在使用支持相应的字符,在Windows ConsolasCourier New似乎正确处理此问题,但大多数其他人没有。

答案 1 :(得分:7)

为了突出显示更简单的解决方案,我将使用Vim自定义语法突出显示规则,例如,标记为这样的文本:

~~ text ~~

以不同的颜色显示(例如,如果您有深色背景,则为较暗的文本颜色,或者为深色反色)。 这将是,在vimrc中:

au BufRead,BufNewFile *.txt   syntax match StrikeoutMatch /\~\~.*\~\~/   
hi def  StrikeoutColor   ctermbg=darkblue ctermfg=black    guibg=darkblue guifg=blue
hi link StrikeoutMatch StrikeoutColor

(其中au命令仅用于将规则应用于filetype .txt文件)

答案 2 :(得分:2)

它与终端中的unicode vim完美配合。

把它放在我的vim vundle文件中:

https://github.com/crux/crux-vimrc/blob/master/plugin/unicode.vim

使用可视模式键映射用于下划线和删除线。

答案 3 :(得分:2)

您可以通过将unicode“long strike overlay combined character”(0336)附加到角色来创建(单个)删除线字符。例如,要创建删除线“Z”,请输入(在输入模式下):

Z^Vu0336

(其中^ V是CTRL-V)。

您可以使用:s(替换)来删除一堆字符,例如,删除当前行:

:s/./&^Vu0336/g

维基百科链接:strikethroughcombining chaaracter

答案 4 :(得分:0)

有一个patch pending,以便在gui中完成这项工作。不幸的是,这个目前已经在todo列表中被隐藏了,所以它将需要我,直到它将由Bram应用。

答案 5 :(得分:0)

你可以把它放在你的.vimrc

map _ a<C-V>u0336<Esc><Space>

然后下划线字符将&#34; strikout-ize&#34;光标下的任何内容,类似于〜(代字号)如何改变大小写。

它的工作原理如下:

a - 开始在光标下的字符后追加   <C-V>u0336(代表Control-V后跟u0336) - strikout叠加组合字符
  <Esc> - 存在附加模式
  <Space> - 使光标前进到三角形字符

Vim为下划线(_)字符赋予另一个含义(请参阅:help _),因此您可能想要选择另一个字符(或多个字符的序列)。

答案 6 :(得分:-2)

不,vim不支持这个。它是一个文本编辑器,而不是WYSIWYG编辑器。

答案 7 :(得分:-5)

如果您在终端下使用Vim,请不要。

  
      
  1. 突出显示普通终端的参数

                                  *bold* *underline* *undercurl*
                                  *inverse* *italic* *standout*
    
         

    term = {attr-list} attr-list * highlight-term * E418     attr-list是逗号分隔的列表(没有空格)     以下项目(以任何顺序):             胆大             强调             undercurl并不总是可用             相反             与反向相反             斜体             站出来             没有使用任何属性(用于重置它)

         

    请注意,此处可以使用“粗体”并使用粗体字体。他们     有同样的效果。     “undercurl”是一个卷曲的下划线。当“undercurl”不可能时     然后使用“下划线”。一般来说,“undercurl”仅适用于     GUI。颜色设置为| highlight-guisp |。   〜

  2.   

但是,在GUI下,您可以这样做。在'guifont'下,我们有以下内容:

  For the Win32 GUI                                       *E244* *E245*
  - takes these options in the font name:
          hXX - height is XX (points, can be floating-point)
          wXX - width is XX (points, can be floating-point)
          b   - bold
          i   - italic
          u   - underline
          s   - strikeout
          cXX - character set XX.  Valid charsets are: ANSI, ARABIC,
                BALTIC, CHINESEBIG5, DEFAULT, EASTEUROPE, GB2312, GREEK,
                HANGEUL, HEBREW, JOHAB, MAC, OEM, RUSSIAN, SHIFTJIS,
                SYMBOL, THAI, TURKISH, VIETNAMESE ANSI and BALTIC.
                Normally you would use "cDEFAULT".

    Use a ':' to separate the options.
  - A '_' can be used in the place of a space, so you don't need to use
    backslashes to escape the spaces.
  - Examples: >
      :set guifont=courier_new:h12:w5:b:cRUSSIAN
      :set guifont=Andale_Mono:h7.5:w4.5