2018年6月12日火曜日

vim基本的なことメモ

vimを使い始めたのでメモです。

目次:
vimインストール
基本的なことのメモ
vimrcのrcってなんだろう

vimインストール

ubuntu16.04

$ gvim と入力するとエラーメッセージ。代わりに候補が。

The program 'gvim' can be found in the following packages:
 * vim
 * vim-gnome
・・・

こちらに詳しく書いてあったので略。
http://zorinos.seesaa.net/article/451348076.html

自分としてはvim-gtkが良さそうです。

■vim-gtkインストール

sudo apt-get install vim-gtk

起動は

gvim

です。 (vim-gtkと打っても立ち上がりません)

基本的なことのメモ

.vimrcファイルどこ→/home/userです。:version で調べられます。 :echo $HOME で出てきます。

% は自分自身。

同じファイルを開き直すのは%(自ファイル)を使います。開いている間に更新されたはずのログファイルを開き直すとか。

:source % 
でファイルを読み込み直す。

substitude で、%s:foo/bar/ と%があると、全体を検索。s:foo/bar/ だと、カレントラインだけを検索する。
 
■コマンド

gg 最初の行へ
G 最後の行へ

dd その行を切り取り
yy その行ヤンク(コピー)
p ペースト(カーソルの下に)
P ペースト(カーソルの上に)

[数字]で倍数を指定できます。

[数字]yy で数字行だけコピー


:tabnew 新しいタブを開く:tabnでも

gt 次のタブへ


map

Ctrl-V でペーストする。ただし挿入モードのみ。Alt-E-Pという操作をimapしました。
"Insert mode Ctrl-V Paste from clipboard
imap <C-V> <M-E>p

Tips


差分を見る gvimdiff

左右に並べるために、:vs で分割し、比べる2つを表示します。どちらも :difft[his] を入力すると、diffで差分を表示します。

行をハイライトするが、行全体ではなく、番号だけをハイライトしたいとき。写経のときに便利です。

set cursorline
hi clear CursorLine

gvimでスペルチェックをON/OFFする

:set spell
:set nospell

修正候補を出すときは、赤線の上で
z=
間違いではないので辞書登録するときは
zg (goodの意味)

日本語のスペルチェックはないようです。2018/12現在

コードのときはソースコード内は読まずにコメント部分に関してスペルチェックをしてくれるようです。

■カレントファイルパスをコピーする。

:let @" = expand("%:p")   

のあとにpでプットできる。

"(レジストリ)に%:p をコピーする?ということでしょうか。覚えられません・・・。

VIM正規表現

■行末の空白(trailing whitespace)を消す

:%s/\s\+$//gc

:%s/  検索開始
\s スペース
\+$ 1文字以上あって末尾
//gc 空白と置換して消す

例えばpycodestyleでひっかかるので行末のスペースだけを消したいときに使いました。
 ■vim正規表現で①を# ①に置き換える

コード例で、解説のために①などの番号がついているときがあります。このままコピーしてしまうとコードが動かないのでコメントアウトしたいと思います。

(前)
def hoge:  ①

(後)
def hoge:  # ①


:%s/\(①\|②\|③\|④\|⑤\|⑥\|⑦\|⑧\|⑨\)$/# \1/gc

行末にある①〜⑨をORでマッチして、# 後方参照 で確認しながら変更します。

■vimでor検索

括弧と | をエスケープしないとだめ

\(aaa\|bbb|)

これで aaa または bbb にマッチする

■vimの非貪欲non-greedyマッチ

.*

これを

.\{-}

こうする

■Vim のウィンドウ高さを最大にする。
Windows
<Win> + Shift + ↑

Ubuntu
ショートカットはないので
:set lines=120

などで調整する。

■ 検索で大文字小文字を制御する

/hoge\c 大文字小文字を区別しない

/hoge\C 大文字小文字を区別する

:set ignorecase いつでも無視する設定

■ vimで印刷時にヘッダを消す

:set printoptions=header:0


調べたこと豆知識

■vimrcのrcってなんだろう

と思って調べると諸説あるようです。
https://stackoverflow.com/questions/11030552/what-does-rc-mean-in-dot-files
http://www.faqs.org/docs/artu/ch10s03.html#id2941902

    run commands
    resource control
    run control
    runtime configuration

The ‘rc’ suffix goes back to Unix's grandparent, CTSS. It had a command-script feature called "runcom". Early Unixes used ‘rc’ for the name of the operating system's boot script, as a tribute to CTSS runcom.

UNIXの祖であるCTSSでは"runcom"というシステムブートファイルがあって、rcはをれへのトリビュートである。

・・・ということでrun controlが歴史的な解釈のようです。

失敗・未解決


■(未解決)Windows gvimでテキストを開いたとき、
「続けるにはenterを押すかコマンドを入力してください」と出ます。これを出さずに直接ファイルを開いて欲しいのですが・・・。方法がわかりません。2個同時に開いたときも出るようです。

■deinが使えなかった失敗

■[soloved]

gvimでset autochdirが動作しない。と思ったら、.gvimrcを書き換えて再読み込みしないとできなかった。その場でsetしてもダメということのようです。

■設定ファイルの再読み込み
.gvimrcファイルを読みなおすときは、
:source .gvimrc

.vimrcにdeinの設定を入れれば良いのですが、.gvimrcに入れていたので読み込めていませんでした。なぜかdein#update()はできていましたので毎回それやっていました。という失敗。

■権限がない状態のファイルを保存する

0 件のコメント:

コメントを投稿