Vim(带插件或不带插件-我不关心)是否支持删除线文本? 我发现自己在Vim中维护着一个“待办事项”列表,并且希望能够通过删除线文本来“划掉”已完成的项目。
谢谢!
Vim(带插件或不带插件-我不关心)是否支持删除线文本? 我发现自己在Vim中维护着一个“待办事项”列表,并且希望能够通过删除线文本来“划掉”已完成的项目。
谢谢!
如果你正在处理Unicode文本,你也许可以使用组合字符实现此目的。下面的文章介绍了如何在gvim中完成这个操作:
你需要确保gvim使用的字体支持适当的字符,在Windows上,Consolas
和Courier New
似乎能正确处理这些字符,但大多数其他字体则不行。
为了采用更简单的高亮显示解决方案,我会使用 Vim 自定义语法高亮规则,以使像这样标记的文本以不同的颜色显示:
~~ 文本 ~~
例如,如果您有一个黑色背景,则会显示为较暗的文本颜色,或者作为深色反转颜色。
在 vimrc 中实现该规则的代码如下:
au BufRead,BufNewFile *.txt syntax match StrikeoutMatch /\~\~.*\~\~/
hi def StrikeoutColor ctermbg=darkblue ctermfg=black guibg=darkblue guifg=blue
hi link StrikeoutMatch StrikeoutColor
(au 命令用于仅将规则应用于 .txt 文件类型)
nnoremap <leader>st I~~ <ESC>A ~~<ESC>:noh<CR>
nnoremap <leader>ust :s/^\~\~ //<CR>:s/ \~\~$//<CR>:noh<CR>
这使我能够轻松地按行添加或删除删除线突出显示。我发现我不需要选择,但您也可以轻松添加映射。 - Rajnnoremap
命令位于两行。 - Rajmap _ a<C-V>u0336<Esc><Space>
然后,光标下的任何内容都会被“穿透化”,这类似于波浪号(~)更改大小写。a
- 在光标下的字符后开始附加<C-V>u0336
(表示 Control-V 加上 u0336)- 穿透线覆盖组合字符<Esc>
- 退出追加模式<Space>
- 将光标移到穿透字符之后s/\%V\(.\)/\=submatch(1) . "\u0336"/g
,其中\%V
使替换操作在选择上进行,而\=
则使得替换字符串中可以使用Unicode字符。 - sampi在终端中使用Unicode Vim,它可以完美地工作。
只需将其放入我的Vim Vundle文件中:
https://github.com/crux/crux-vimrc/blob/master/plugin/unicode.vim
-nargs=0 Overline call s:CombineSelection(<line1>, <line2>, '0305') command! -range -nargs=0 Underline call s:CombineSelection(<line1>, <line2>, '0332') command! -range -nargs=0 DoubleUnderline call s:CombineSelection(<line1>, <line2>, '0333') command! -range -nargs=0 Strikethrough call s:CombineSelection(<line1>, <line2>, '0336') function! s:CombineSelection(line1, line2, cp) execute 'let char = "\u'.a:cp.'"' execute a:line1.','.a:line2.'s/\%V[^[:cntrl:]]/&'.char.'/ge' endfunction vnoremap :Strikethrough<CR> vnoremap __ :Underline<CR> ```
不支持,vim是一个文本编辑器,而不是所见即所得的编辑器。
如果你在终端下使用Vim,那么不行。
突出显示普通终端的参数然而,在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