Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

( Vim )全角スペースを表示、全角スペースを半角スペースに変換、文末の全角スペースを削除する

$
0
0

Screen Shot 2019-04-03 at 13.34.03.png

Summary

Vim

  1. 全角スペースを表示

  2. 全角スペースを半角スペースに変換

  3. 文末の全角スペースを削除

全角スペースを表示する

autocmd MyAutoCmd ColorScheme * highlight UnicodeSpaces  ctermbg=131  guibg=#af5f5f
autocmd MyAutoCmd BufRead,BufNewFile * call matchadd(\'UnicodeSpaces'\, '\v%u180E|%u2028|%u2029|%u00A0|%u2000|%u2001
\|%u2002|%u2003|%u2004|%u2005|%u2006|%u2007
\|%u2008|%u2009|%u200A|%u202F|%u205F|%u3000'
\)

全角スペースを半角スペースにする

command! Spaces calls:spaces()function!s:spaces() abort

  " mark origin position:normal!maletl:range ='%'letl:unicodeSpaces = '\v    \ %u180E|%u2028|%u2029|%u00A0|%u2000|%u2001
    \|%u2002|%u2003|%u2004|%u2005|%u2006|%u2007
    \|%u2008|%u2009|%u200A|%u202F|%u205F|%u3000'

  letl:space =' '" Replace unicode spaces to normal space:execute l:range 'substitute''/\v('.l:unicodeSpaces .')/'.l:space .'/ge'" back to origin position:normal! `aendfunction

文末の半角・全角スペースのみ削除する

  command! TrimEnd calls:trimEnd()function!s:trimEnd() abort

    " mark origin position:normal!maletl:range ='%'letl:unicodeSpaces = '\v      \ %u180E|%u2028|%u2029|%u00A0|%u2000|%u2001
      \|%u2002|%u2003|%u2004|%u2005|%u2006|%u2007
      \|%u2008|%u2009|%u200A|%u202F|%u205F|%u3000'

    letl:space ='\v\s'" Trim end spaces:execute l:range 'substitute''/\v('.l:unicodeSpaces .'|'.l:space .')+$//ge'" back to origin position:normal! `aendfunction

Thanks

@mattn
@koron
@thinca
@yaegassy
@m_nish_(slack vim-jp account)

See also

page11 Table 6-2.Unicode Space Characters

Vimで全角空白以外のユニコードの空白文字もハイライト&取り除く


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>