#.vimrc のメモ
Windows の gvim などでは、.gvimrc としないと colorscheme は反映されないので注意。
なので、vim と gvim を併用する場合は、colorscheme のみ .gvimrc に分離して、残りを .vimrc に書いておくとよい。
set number
" エラーでベルを鳴らさない
set noerrorbells
" 文字コード & 改行コード
:set ts=4
" 文字コードの自動認識
if &encoding !=# 'utf-8'
set encoding=japan
set fileencoding=japan
endif
if has('iconv')
let s:enc_euc = 'euc-jp'
let s:enc_jis = 'iso-2022-jp'
" iconvがeucJP-msに対応しているかをチェック
if iconv("\x87\x64\x87\x6a", 'cp932', 'eucjp-ms') ==# "\xad\xc5\xad\xcb"
let s:enc_euc = 'eucjp-ms'
let s:enc_jis = 'iso-2022-jp-3'
" iconvがJISX0213に対応しているかをチェック
elseif iconv("\x87\x64\x87\x6a", 'cp932', 'euc-jisx0213') ==# "\xad\xc5\xad\xcb"
let s:enc_euc = 'euc-jisx0213'
let s:enc_jis = 'iso-2022-jp-3'
endif
" fileencodingsを構築
if &encoding ==# 'utf-8'
let s:fileencodings_default = &fileencodings
let &fileencodings = s:enc_jis .','. s:enc_euc .',cp932'
let &fileencodings = &fileencodings .','. s:fileencodings_default
unlet s:fileencodings_default
else
let &fileencodings = &fileencodings .','. s:enc_jis
set fileencodings+=utf-8,ucs-2le,ucs-2
if &encoding =~# '^\(euc-jp\|euc-jisx0213\|eucjp-ms\)$'
set fileencodings+=cp932
set fileencodings-=euc-jp
set fileencodings-=euc-jisx0213
set fileencodings-=eucjp-ms
let &encoding = s:enc_euc
let &fileencoding = s:enc_euc
else
let &fileencodings = &fileencodings .','. s:enc_euc
endif
endif
" 定数を処分
unlet s:enc_euc
unlet s:enc_jis
endif
" 日本語を含まない場合は fileencoding に encoding を使うようにする
if has('autocmd')
function! AU_ReCheck_FENC()
if &fileencoding =~# 'iso-2022-jp' && search("[^\x01-\x7e]", 'n') == 0
let &fileencoding=&encoding
endif
endfunction
autocmd BufReadPost * call AU_ReCheck_FENC()
endif
" 改行コードの自動認識
set fileformats=unix,dos,mac
" □とか○の文字があってもカーソル位置がずれないようにする
if exists('&ambiwidth')
set ambiwidth=double
endif
"" 文字コードを指定して開き直す
"" :e ++enc=shift_jis
filetype on
if has("audocmd")
autocmd FileType c,cpp,perl setlocal cindent
autocmd FileType python setlocal tabstop=4 noexpandtab smarttab=on
endif
"-------Search--------
"インクリメンタルサーチを有効にする
set incsearch
"大文字小文字を区別しない
set ignorecase
"大文字で検索されたら対象を大文字限定にする
set smartcase
"行末まで検索したら行頭に戻る
set wrapscan
"括弧の対応をハイライト
set showmatch
"検索結果をハイライトする
set hlsearch
"ルーラー,行番号を表示
set ruler
set number
"ステータスラインにコマンドを表示
set showcmd
"ステータスラインを常に表示
set laststatus=2
"ファイルナンバー表示
"set statusline=[%n]
"ホスト名表示
set statusline+=%{matchstr(hostname(),'\\w\\+')}:
"ファイル名表示
set statusline+=%<%F
"変更のチェック表示
set statusline+=%m
"読み込み専用かどうか表示
set statusline+=%r
"ヘルプページなら[HELP]と表示
set statusline+=%h
"プレビューウインドウなら[Prevew]と表示
"set statusline+=%w
"これ以降は右寄せ
set statusline+=%=
"現在行数/全行数
set statusline+=[L%l/%L]
"文字コード
"set statusline+=[ASCII:\%06.6b][HEX:\%04.4B]
set statusline+=[HEX:\%04.4B]
"ファイルフォーマット表示
set statusline+=[%{&fileformat}]
"文字コード表示
set statusline+=[%{has('multi_byte')&&\&fileencoding!=''?&fileencoding:&encoding}]
"ファイルタイプ表示
set statusline+=%y
" 色テーマを指定
syntax enable
" どれか入っていないかな?
colorscheme evening
colorscheme koehler
colorscheme wombat256mod
colorscheme apprentice
colorscheme moonshine
colorscheme antares
"文字コードや改行コードが違っているとファイルを壊すので注意
"vim: set ts=4 fenc=utf-8 ff=unix ft=vimrc : モードライン
文字コード判別部分は 文字コードの自動認識 からの盗用。
colorscheme
カラースキームの wombat は Customizing GVim in Windows 7 から。
と思ったけど、gruvbox にしてみた。プログラムの時の色は良いけども、普通のテキストファイルの時のバックは明るすぎるなぁ。残念。
-
evening
デフォルトでインストール? -
koehler
デフォルトでインストール? -
wombat256, wombat256mod.vim
wombat256 だと、ターミナルの vim でも使えるらしい。
文字コード
現在の文字コードを表示
:set enc?
文字コードを指定して開きなおす
:e ++enc=utf-8
:e ++enc=euc-jp
:e ++enc=iso-2022-jp
:e ++enc=sjis
文字コードを指定して保存
:set fileencoding=sjis
:w
改行コード
ファイルの改行コードを表示
:set fileformat?
省略形
:se ff?
改行コードを指定してファイルを開きなおす
:e ++ff=mac
:e ++ff=dos
:e ++ff=unix
開いているファイルの改行コードを変更して保存
:se ff=unix
:w
screen を手動でアップデート
Raspberry Pi を使ってると screen の日本語の扱いがあれなので手動で入れる。
そもそも、GNU screen は 4.6.2 (2017/10/23) が出てるのに Raspberry Pi の screen は 4.5.0 (2017/01/17) なので手動で導入しようかなと。
2022-02-02 4.8.0 がリリースされました。
.screenrc もどこかに置いておかないと → github
> apt list screen
Listing... Done
screen/stable,now 4.5.0-6 armhf [installed]
IIJ の ftp サーバ ftp://ftp.iij.ad.jp/pub/gnu/screen/ から本体をダウンロード。
パッチは
https://rcmdnk.com/blog/2020/02/07/computer-screen/
以下、修正予定...
https://rcmdnk.com/blog/2014/07/13/computer-mac-homebrew-screen/
のページから
https://github.com/rcmdnk/homebrew-rcmdnkpac/blob/master/screenutf8.rb
を参照してみると、utmp のパッチはまぁ当てなくてもいいかな?と思うので、残りの 2つだけで当てればいいのかな?ということで、以下の二つを拾ってくる。
このパッチを wget して、パッチを当てる。
> echo screen-utf8-* | xargs -n 1 patch -p 1
> ./autogen.sh
> ./configure --prefix=$HOME/opt --enable-pam --enable-use-locale --enable-colors256 --enable-rxvt_osc
> make -j4
> make install
> sudo apt remove screen
> sudo install etc/screenrc /etc/screenrc
> file ~/opt/bin/screen-4.6.2
/home/pi/opt/bin/screen-4.6.2: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 3.2.0, BuildID[sha1]=e21ed43a26e1aae77e281a4f9b93e6ed956eea02, not stripped
> strip ~/opt/bin/screen-4.6.2
パッケージと混ざると面倒なので $HOME/opt 以下へインストール。
utf8 を使うときは screen -U としないといけない模様。
なので、.tcshrc で alias screen screen -U としておくと良いんじゃないでしょうか。
何故か strip されてなかったので strip しておく
#vim を手動でアップデート
vim もアップデート
8.0.0 (2016-09-12) → 8.1.1 (2018-05-18)
> apt list vim
Listing... Done
vim/stable,stable,now 2:8.0.0197-4+deb9u1 armhf [installed]
> wget ftp://ftp.jp.vim.org/pub/vim/unix/vim-8.1.tar.bz2
> bzip2 -dc vim-8.1.tar.bz2 | tar xvf -
> cd vim81
> ./configure --prefix=$HOME/opt --enable-perlinterp=yes --enable-pythoninterp=yes --with-python3-command=python3 --enable-terminal
> make -j4
> make install
#less を手動でアップデート
less 4.8.1 (2015-10-16) → 5.3.0 (2018-02-17)
> apt list less
Listing... Done
less/stable,stable,now 481-2.1 armhf [installed]
> wget ftp://ftp.iij.ad.jp/pub/gnu/less/less-530.tar.gz
> tar xzvf less-530.tar.gz
> cd less-530
> ./configure --prefix=$HOME/opt
> make -j4
> make install
> less -V
less 481 (GNU regular expressions)
Copyright (C) 1984-2015 Mark Nudelman
less comes with NO WARRANTY, to the extent permitted by law.
For information about the terms of redistribution,
see the file named README in the less distribution.
Homepage: http://www.greenwoodsoftware.com/less
> rehash
> less -V
less 530 (POSIX regular expressions)
Copyright (C) 1984-2017 Mark Nudelman
less comes with NO WARRANTY, to the extent permitted by law.
For information about the terms of redistribution,
see the file named README in the less distribution.
Homepage: http://www.greenwoodsoftware.com/less