やること
vi をもっと使いやすくするために Vim をインストールして、
Vim を vi コマンドで使えるようにする。
あと行番号表示したりハイライトしたかったのでその設定もする。
公式の DL ページでは github 推奨と書いてあったので、
yum などではなく github からインストールすることにした。
インストールは下記。ほぼコピペ。
どうでもいいけど Vim は Vi IMproved の略らしい。
既に Vim の Huge 版がある場合はアンインストール
$ vim -v
yum
$ sudo yum remove -y vim-enhanced
Vim をインストール
Vim に必要なパッケージのインストール
$ sudo yum install -y make gcc ncurses-devel
github 経由でのインストール
- clone する場所は /usr/local/vim にする
$ cd /usr/local
$ sudo mkdir vim
# 必要があれば作業ユーザーに権限を渡す
$ sudo chown user:user vim
$ cd vim
# ここからほぼコピペ
$ git clone https://github.com/vim/vim.git .
$ cd src
# $ make distclean はスキップした
# $ make distclean # if you build Vim before
$ make
$ sudo make install
$ vim --version
VIM - Vi IMproved 9.0 (2022 Jun 28, compiled Jul 15 2022 06:23:53)
適用済パッチ: 1-53
Compiled by leadi@ip-172-31-26-208.ap-northeast-1.compute.internal
Huge 版 without GUI. 機能の一覧 有効(+)/無効(-)
+acl +file_in_path +mouse_urxvt -tag_any_white
+arabic +find_in_path +mouse_xterm -tcl
+autocmd +float +multi_byte +termguicolors
+autochdir +folding +multi_lang +terminal
-autoservername -footer -mzscheme +terminfo
-balloon_eval +fork() +netbeans_intg +termresponse
+balloon_eval_term +gettext +num64 +textobjects
-browse -hangul_input +packages +textprop
++builtin_terms +iconv +path_extra +timers
+byte_offset +insert_expand -perl +title
+channel +ipv6 +persistent_undo -toolbar
+cindent +job +popupwin +user_commands
-clientserver +jumplist +postscript +vartabs
-clipboard +keymap +printer +vertsplit
+cmdline_compl +lambda +profile +vim9script
+cmdline_hist +langmap -python +viminfo
+cmdline_info +libcall -python3 +virtualedit
+comments +linebreak +quickfix +visual
+conceal +lispindent +reltime +visualextra
+cryptv +listcmds +rightleft +vreplace
+cscope +localmap -ruby +wildignore
+cursorbind -lua +scrollbind +wildmenu
+cursorshape +menu +signs +windows
+dialog_con +mksession +smartindent +writebackup
+diff +modify_fname -sodium -X11
+digraphs +mouse -sound -xfontset
-dnd -mouseshape +spell -xim
-ebcdic +mouse_dec +startuptime -xpm
+emacs_tags -mouse_gpm +statusline -xsmp
+eval -mouse_jsbterm -sun_workshop -xterm_clipboard
+ex_extra +mouse_netterm +syntax -xterm_save
+extra_search +mouse_sgr +tag_binary
-farsi -mouse_sysmouse -tag_old_static
システム vimrc: "$VIM/vimrc"
ユーザー vimrc: "$HOME/.vimrc"
第2ユーザー vimrc: "~/.vim/vimrc"
ユーザー exrc: "$HOME/.exrc"
デフォルトファイル: "$VIMRUNTIME/defaults.vim"
省略時の $VIM: "/usr/local/share/vim"
make 時にエラーが出た
$ make
no terminal library found
checking for tgetent()... configure: error: NOT FOUND!
You need to install a terminal library; for example ncurses.
On Linux that would be the libncurses-dev package.
Or specify the name of the library with --with-tlib.
make: *** [auto/config.mk] エラー 1
ncurses 必要と書いてあるのでインストールする。
# インストールされているか確認
$ sudo yum list installed | grep ncurses-devel
# インストール
$ sudo yum install -y ncurses-devel
Vim を vi コマンドで扱えるようにする
元々ある vi コマンドの名前を適当に変更する
root と一般ユーザーの bin の場所が違うので注意。
# 一般ユーザーが使う vi の場所
$ which vi
/usr/bin/vi
$ sudo mv /usr/bin/vi /usr/bin/vi-min
# root が使う vi の場所
$ sudo which vi
/bin/vi
$ sudo mv /bin/vi /bin/vi-min
シンボリックリンクを使い vi コマンドで vim を使えるようにする
- github 経由でインストールした場合の vim コマンドは /usr/local/vim/src/vim にある
- インストール先は /usr/local/vim 想定
$ sudo ln -s /usr/local/vim/src/vim /usr/bin/vi
$ which vi
vi=vim
$ sudo ln -s /usr/local/vim/src/vim /bin/vi
$ sudo which vi
vi=vim
.vimrc にて行番号表示、ハイライトなどの設定をする
設定内容は下記記事コピペ。
何も考えず~/.vimrcにこれを書くんだ! 〜vim初心者によるvim初心者のためのvim入門〜 - Qiita
# $HOME に移動
$ cd
$ vi .vimrc
" setting
"文字コードをUFT-8に設定
set fenc=utf-8
" バックアップファイルを作らない
set nobackup
" スワップファイルを作らない
set noswapfile
" 編集中のファイルが変更されたら自動で読み直す
set autoread
" バッファが編集中でもその他のファイルを開けるように
set hidden
" 入力中のコマンドをステータスに表示する
set showcmd
" 見た目系
" 行番号を表示
set number
" 現在の行を強調表示
set cursorline
" 現在の行を強調表示(縦)
set cursorcolumn
" 行末の1文字先までカーソルを移動できるように
set virtualedit=onemore
" インデントはスマートインデント
set smartindent
" ビープ音を可視化
set visualbell
" 括弧入力時の対応する括弧を表示
set showmatch
" ステータスラインを常に表示
set laststatus=2
" コマンドラインの補完
set wildmode=list:longest
" 折り返し時に表示行単位での移動できるようにする
nnoremap j gj
nnoremap k gk
" シンタックスハイライトの有効化
syntax enable
" Tab系
" 不可視文字を可視化(タブが「▸-」と表示される)
set list listchars=tab:\▸\-
" Tab文字を半角スペースにする
set expandtab
" 行頭以外のTab文字の表示幅(スペースいくつ分)
set tabstop=2
" 行頭でのTab文字の表示幅
set shiftwidth=2
" 検索系
" 検索文字列が小文字の場合は大文字小文字を区別なく検索する
set ignorecase
" 検索文字列に大文字が含まれている場合は区別して検索する
set smartcase
" 検索文字列入力時に順次対象文字列にヒットさせる
set incsearch
" 検索時に最後まで行ったら最初に戻る
set wrapscan
" 検索語をハイライト表示
set hlsearch
" ESC連打でハイライト解除
nmap <Esc><Esc> :nohlsearch<CR><Esc>
マウスやトラックパッドでクリックしたりスクロールしたい時
set mouse=a を追加する
$ vi .vimrc
" 追加
set mouse=a
root の vi の設定にも反映させる
$ cd
$ sudo cp .vimrc /root/.vimrc