vimでテキスト書いてたら、途中で勝手に改行されるやつ
vimでは、textwidthに設定された文字数と、formatoptionsに設定されたスタイルに従って文章を自動で改行してくれるオプションがある。
そしてMacVim(というかKaoriyaVim?)ではデフォルトの.vimrc内で
./Contents/Resources/vim/runtime/vimrc_example.vim:71: autocmd FileType text setlocal textwidth=78
と設定されているので、テキストファイルを開くと勝手に改行されるようになる。
これを防ぐためには、vimrcの中で
set textwidth=0
のような形で、textwidthを0にするか、
set formatoptions=q
のように、そもそも改行されないようにすれば良い。
とりあえず、自分のvimrcには、
autocmd FileType text setlocal textwidth=0
と書いておいた。
参考
- http://yakinikunotare.boo.jp/orebase2/vim/never_auto_newline
- http://kaworu.jpn.org/kaworu/2008-06-01-1.php
- http://d.hatena.ne.jp/WK6/20120606/1338993826
- :help ins-textwidth
- :help fo-table
おまけ
以下ドキュメントよりfomatoptionsのパラメータ一覧
フラグ | 'formatoptions' に指定されたときの作用 |
---|---|
t | 'textwidth' を使ってテキストを自動折返しする |
c | 'textwidth' を使ってコメントを自動折返して、現在のコメント開始文字列を自動挿入する。 |
r | 挿入モードで |
o | ノーマルモードで 'o', 'O' を打ち込んだ後に、現在のコメント開始文字列を自動的に挿入する。 |
q | "gq" でコメントを整形する。 |
w | 行末に空白が付いているとき、段落が次行に続いていると認識する。行末が空白以外の行で段落が終わるとする。 |
a | 段落を自動整形する。テキストが挿入されたり削除されるたび、段落は再整形される。 |
n | テキストの整形時、番号付きリストを認識する。数字の後のテキストのインデントが次の行に使われる。数字の後に '.', ':',')', ']' や '}' が付いてもよい。 "2" と一緒には機能しない。 |
2 | テキストを整形するとき、段落の最初の行ではなく2番目の行のインデントを使ってそれ以降の行を整形する。これは最初の行のインデントが他の行と異なるような段落をサポートする。 |
v | 挿入モードでVi互換の自動折返しを使う: 挿入モードに入って以来入力された空白でのみ折返しが行われる。 |
b | 'v' と同様だが、折返し余白の中または前で、空白を入力したときのみ自動折返しをする。 |
l | 挿入モードでは長い行は折り返されない |
m | 文字コードが 255 より後のマルチバイト文字の間でも改行する。 |
M | 行の連結時に、マルチバイト文字の前後に空白を挿入しない。こちらの方がフラグ 'B' より優先する。 |
B | 行の連結時に、マルチバイト文字同士の間に空白を挿入しない。こちらよりフラグ 'M' の方が優先する。 |
1 | 1文字の単語の後では改行しない。代わりにその前で改行される (可能ならば)。 |
j | 可能ならば、行を連結する際にコメントリーダーを削除する。 |
また、't' と 'c' でVimが自動折返しを行うタイミングを指定できる。
フラグ | 作用 |
---|---|
"" | 自動整形しない ("gq" で手動の整形処理を行う) |
"t" | テキストを自動整形するが、コメントにはしない |
"c" | コメントを自動整形するが、テキストにはしない (C言語コードに適している) |
"tc" | テキストとコメントを自動整形する |
まあ、都度々々ヘルプ引くのが一番ですね。