ラベル vim の投稿を表示しています。 すべての投稿を表示
ラベル vim の投稿を表示しています。 すべての投稿を表示

2022/08/12

gVimの文字コード周りについてのメモ

gVimが対応する文字コードの一覧を見ようと思ったら、cygwinあたりで

iconv -l

で一覧が表示される。実際に入っているDLLとは異なるが、大体はこれで把握できるはず。

日本語でよく使われそうな文字コードは

$ iconv.exe -l | grep -i "utf\|jis\|jp\|cp932"
CP65001 UTF-8 UTF8
UTF-16 UTF16
UTF-16BE UTF16BE
UNICODEFFFE UTF-16LE UTF16LE
UTF-32 UTF32
UTF-32BE UTF32BE
UTF-32LE UTF32LE
CP65000 UNICODE-1-1-UTF-7 UTF-7 CSUNICODE11UTF7
ISO-IR-14 ISO646-JP JIS_C6220-1969-RO JP CSISO14JISC6220RO
JIS0201 JISX0201-1976 JISX0201.1976-0 JIS_X0201 X0201 CSHALFWIDTHKATAKANA
ISO-IR-87 JIS0208 JISX0208.1983-0 JISX0208.1990-0 JIS_C6226-1983 JIS_X0208 JIS_X0208-1983 JIS_X0208-1990 X0208 CSISO87JISX0208
ISO-IR-159 JIS0212 JISX0212.1990-0 JIS_X0212 JIS_X0212-1990 JIS_X0212.1990-0 X0212 CSISO159JISX02121990
CP51932 EUC-JP EUCJP EUC_JP EXTENDED_UNIX_CODE_PACKED_FORMAT_FOR_JAPANESE CSEUCPKDFMTJAPANESE
MS_KANJI SHIFT-JIS SHIFT_JIS SJIS CSSHIFTJIS
CP932 WINDOWS-31J
ISO-2022-JP ISO2022JP CSISO2022JP
ISO-2022-JP-1
ISO-2022-JP-2 CSISO2022JP2
CP50221 ISO-2022-JP-ESC ISO-2022-JP-MS
EUC-JIS-2004 EUC-JISX0213
SHIFT_JIS-2004 SHIFT_JISX0213
ISO-2022-JP-2004 ISO-2022-JP-3

 参考)UTF-16は、BOMを使ってエンディアンの指定が必要だけど、BOMがない場合はUTF-16BEを暗示するらしい(ウィキペディア)。

また、UTF-16LEとUTF-16BEでは、BOMを付けてはいけないことになっているが、付けた場合はUTF-16のLE/BEの指定付きと同じ符号化になるので、ついていても問題はないのではないかと思ったりする。そのため、おそらく、ファイルの書式(XMLなど)を定める上位のフォーマットで、LE/BEを指定されている場合にはBOMを付けないように、という意味かと思われる。


UnicodeでBOMの有無を確認するには

:set bomb?

BOMをつけるには

:set bomb

BOMを消すには

:set nobomb


一度開いたファイルの文字コードを読み込ませ直すには

:e ++enc=utf-8




2021/11/25

BloggerのGoogle Spreadsheetの表を貼り付ける

Bloggerで表を作ろうとしたら大変。簡単な方法としては、Google Spreadsheetで表を作って貼り付ければよいのだが、表がいい感じで表示されないので、諦めていた。

調整する方法を見つけたのでメモ。

表を貼り付けた後、HTMLビューにしてTableタグに含まれる「table-layout: fixed; width: 0px;」を「table-layout: auto; width: 100%;」に置き換える。

「table-layout」を「auto」に設定することで、デバイスの画面サイズに対応したサイズで表示され、「width」を「100%」に設定することで、表の横幅が画面の横幅いっぱいに表示されるようになる。

参考)https://dendensoken.hankeidou.jp/2021/05/blogger-table.html


2022-01-10追記(2022-02-14 tdタグを1行にまとめるコマンドを追加)

ここで作った表のHTMLが長い原因である、tdタグ内のdata-sheets-numberformat属性やdata-sheets-value属性、表内の各項目に付いているspanタグを削除すると見た目がスッキリする。tdタグのstyle属性はほぼすべての項目で同じなので、削除しても良さそうだが、微妙に違うセルがあるので残しておく。

自分用のメモだが、vimで行う場合は下記(1行目はHTMLで有ることを宣言、2行目はタグの終わりで改行を入れる、3行目はファイル全体を選択、4行目はインデントを整える、5行目はdata-sheets-*属性を削除、6行目はspanタグを削除、7行目はtdタグを1行にまとめる)

:set filetype=html     
:%s/>/>^M/gc 
ggVG
=
:%s/data-sheets-.\{-}\%(}"\)\@=}" //gc 
:%s/<span style="[^"]\{-}">[\s\n]*\s*\(.\{-}\)[\s\n]*\s*<\/span>/\1/gc
:%s/<td>\n\s*\(.*\)\%(<\/td>\)/<td>\1<\/td>/gc 


メモ

置換先の設定を「&」にしてやると、一致した文字列全体に置き換えてくれる。

置き換え時のオプションで「n」を指定すると、実際の置換はせずに、置換される個数を表示してくれる。

:%s/data-sheets-.\{-}\%(}"\)\@=}" /&/gn 

改行コードは\n。「\_.」で改行コードを含む任意の一文字を表せる。

「\{-}」は直前の文字の0個以上の最短マッチを表す