新サーバに毎回入れる.inputrc, /admin/.bashrc, /etc/vimrc

# .inputrc

```bash:/etc/.inputrc
set completion-ignore-case on

TAB: menu-complete
```

rootだと再ログインで反映されるけど、adminではされない。
chown admin:admin .inputrc
/home/admin/.inputrcにもコピペしよう。

# .bashrc
/etc/bashrcというファイルで設定したらrootやadminなどに一括設定出来た気がするけど、最初から考え無しにここを触ると、ミスると全ユーザーでログイン出来なくなるので注意（1敗）

普通に/admin/.bashrcとかで設定した方が良さそう（あたりまえ体操）

## /home/admin/.bashrc
```bash:/home/admin/.bashrc
# .bashrc

# Source global definitions
# 最初からあるやつ。グローバル設定ファイルを読み込む
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

# +++++ 表示の編集 +++++
# \h ホスト名（最初の.まで）
# \H ホスト名
# \t 時間（24時間形式）
# \u ユーザー名
# \w 現在のディレクトリ（フルパス）
# \W 現在のディレクトリ
PS1="[\u@\h \w]\$ "

# hisotryの設定
HISTSIZE=50000
HISTTIMEFORMAT='%Y-%m-%d %H:%M:%S '
export HISTCONTROL=ignoredups
function share_history {
        history -a
        history -c
        history -r
}
PROMPT_COMMAND='share_history'
shopt -u histappend
export HISTSIZE=50000

# Quick Access
alias cdw='cd /var/www/'
alias cdror='cd /var/www/Rails'
alias cda='cd /home/admin/'
alias cdgit='cd /opt/git'

# Mato Settings
alias vm='vim'

alias lls='ls -1'
# alias ls='ls -l'
alias la='ls -larth'

alias relogin='exec $SHELL -l'

alias cls='clear'
alias cdu='cd ../'
alias cduu='cd ../../'
alias cduuu='cd ../../../'

alias gitdif='git diff --name-only'
alias gitdiff='git diff --name-only'
alias gitcomam='git commit --amend'
alias gitcom='git commit --amend'
alias gitlog="git log --oneline --pretty=format:'%h [%cd] %d %s %n' --date=format:'%Y-%m-%d %H:%M:%S'"

alias ff='fg 1'

alias type='cat'

alias delete='rm -ir'
alias delete_NO_ALERT='rm -fr'

alias r="ruby"
alias ru="ruby"
alias rb="ruby"

alias py="python"
alias py3="python3.6"

alias vmcron="vim /var/spool/cron/admin"
alias catcron="cat /var/spool/cron/admin"

alias search="find -name"

alias duu='du -sh -BM * | sort -rn'
alias dff='df -h'

# Rails
alias run="rails runner"
alias vmad="vim app/admin/"
```

## /root/.bashrc
だいたい上と一緒だけどrootならではの設定
```bash:/root/.bashrc
# root
alias sys="systemctl"
alias sysdr="systemctl daemon-reload"
alias systatus="systemctl status"
alias systop="systemctl stop"
alias sysrestart="systemctl restart"
alias cdsys="cd /etc/systemd/system"
alias vmhttpd="vim /etc/httpd/conf/httpd.conf"
alias cdprometheus="cd /usr/local/src/prometheus"
alias psruby="ps -aux | grep ruby"

# FireWall
alias fc="firewall-cmd"
alias fcr="firewall-cmd --reload"
alias fclist="firewall-cmd --list-all"
alias fca="firewall-cmd --list-all"
alias vmfw="vim /etc/firewalld/zones/public.xml"

# CRON
# alias vmcron="crontab -e"
alias vmcron="vim /var/spool/cron/root"
alias catcron="crontab -l"
alias cronlog="vm /var/log/cron"
```

正直使ってないのも結構あって草


# /etc/vimrc
もう10年近くほぼ触ってないかも。
と言いながら時々触ってるかも？

```vim:/etc/vimrc
" 文字コード
set encoding=utf-8
set fileencoding=utf-8

" スワップファイルを1ヶ所に集めて消しやすくする
""set directory=/home/matonaka/www/swap

"
" 場合分けによる文字エンコーディング設定は長すぎるので削除
" 欲しくなったら矢野さんサイト
"

"----------------------------------------------------
" 基本的な設定
"----------------------------------------------------
" viとの互換性をとらない(vimの独自拡張機能を使う為)
set nocompatible
" 改行コードの自動認識
set fileformats=unix,dos,mac
" ビープ音を鳴らさない
set vb t_vb=
" バックスペースキーで削除できるものを指定
" indent  : 行頭の空白
" eol     : 改行
" start   : 挿入モード開始位置より手前の文字
set backspace=indent,eol,start

"----------------------------------------------------
" バックアップ関係
"----------------------------------------------------
" バックアップをとらない
set nobackup
" ファイルの上書きの前にバックアップを作る
" (ただし、backup がオンでない限り、バックアップは上書きに成功した後削除される)
set writebackup
" バックアップをとる場合
"set backup
" バックアップファイルを作るディレクトリ
"set backupdir=~/backup
" スワップファイルを作るディレクトリ
"set directory=~/swap

"----------------------------------------------------
" 検索関係
"----------------------------------------------------
" コマンド、検索パターンを100個まで履歴に残す
set history=100
" 検索の時に大文字小文字を区別しない
set ignorecase
" 検索の時に大文字が含まれている場合は区別して検索する
"set smartcase
" 最後まで検索したら先頭に戻る
set wrapscan
" インクリメンタルサーチを使わない
set noincsearch

" TAB補完で大文字小文字を区別しない
set ignorecase

"----------------------------------------------------
" 表示関係
"----------------------------------------------------

" タイトルをウインドウ枠に表示する
" set title
" 行番号を表示
set number
" ルーラーを表示
set ruler
" タブ文字を CTRL-I で表示し、行末に $ で表示する
"set list
" 入力中のコマンドをステータスに表示する
set showcmd
" ステータスラインを常に表示
set laststatus=2
" 括弧入力時の対応する括弧を表示
set showmatch
" 対応する括弧の表示時間を2にする
" set matchtime=2
" シンタックスハイライトを有効にする
syntax on
" 検索結果文字列のハイライトを有効にする
set hlsearch
" コメント文の色を変更
""highlight Comment ctermfg=DarkCyan
" コマンドライン補完を拡張モードにする
set wildmenu

" 入力されているテキストの最大幅
" (行がそれより長くなると、この幅を超えないように空白の後で改行される)を無効にする
set textwidth=0
" ウィンドウの幅より長い行は折り返して、次の行に続けて表示する
set wrap

" 全角スペースの表示
highlight ZenkakuSpace cterm=underline ctermfg=lightblue guibg=darkgray

" Errorが出るのでコメントアウト
"match ZenkakuSpace /　/

" ステータスラインに表示する情報の指定
set statusline=%n\:%y%F\ \|%{(&fenc!=''?&fenc:&enc).'\|'.&ff.'\|'}%m%r%=<%l/%L:%p%%>
" ステータスラインの色
highlight StatusLine   term=NONE cterm=NONE ctermfg=black ctermbg=white

" 文字補完部分の色
hi Pmenu ctermbg=cyan
hi PmenuSel ctermbg=yellow
""hi PmenuSbar ctermbg=white

"----------------------------------------------------
" インデント
"----------------------------------------------------
" オートインデントを無効にする
"set noautoindent
" タブが対応する空白の数
set tabstop=4
" タブやバックスペースの使用等の編集操作をするときに、タブが対応する空白の数
set softtabstop=4
" インデントの各段階に使われる空白の数
set shiftwidth=4
" タブを挿入するとき、代わりに空白を使わない
set noexpandtab

"----------------------------------------------------
" オートコマンド
"----------------------------------------------------
"if has("autocmd")
    " ファイルタイプ別インデント、プラグインを有効にする
"    filetype plugin indent on
    " カーソル位置を記憶する
"    autocmd BufReadPost *
"        \ if line("'\"") > 0 && line("'\"") <= line("$") |
"        \   exe "normal g`\"" |
"        \ endif
"endif

"----------------------------------------------------
" その他
"----------------------------------------------------
" バッファを切替えてもundoの効力を失わない
set hidden
" 起動時のメッセージを表示しない
set shortmess+=I
" 横線の表示
""set cursorline
" 縦線の表示
"set cursorcolumn




"***** MATO Setting *****"

" 現在行の番号を分かりやすく
set cursorline
hi clear CursorLine
autocmd ColorScheme * highlight LineNr ctermfg=239
autocmd ColorScheme * highlight CursorLineNr ctermfg=blue

" カラースキーマ
colorscheme default
set t_Co=256


" これで黒背景だということを指定、読まれる色設定が変わる
"set bg=dark

" コメント改行を引き継がせない
auto FileType * setlocal formatoptions-=ro

" タブ分割した際の色
hi TabLineSel  term=bold cterm=bold,underline ctermfg=LightGray ctermbg=DarkBlue gui=bold,underline guifg=LightGray guibg=DarkBlue
hi TabLine term=reverse cterm=underline ctermfg=Black ctermfg=Gray ctermbg=black gui=underline guifg=Black guibg=gray
hi TabLineFill term=reverse cterm=reverse,bold ctermfg=LightGray ctermbg=black gui=reverse,bold guifg=LightGray guibg=black

" 辞書機能 -> 変な動きする……
"inoremap <C-m> <Nop>
"inoremap <C-m> <C-x><C-k>
"au FileType php :set dictionary=~/.vim/dict/php.dict
" set dictionary=~/.vim/dict/php.dict


" CURSOL
let &t_SI .= "\e[3 q"
let &t_EI .= "\e[1 q"

" カーソルを点滅させない
set guicursor=a:blinkon0

" オートインデントを有効にする
set autoindent
set smartindent " これやらないと効かなかった！

" 記録するコマンド数
set history=1000

" ファイルを開く時にリスト表示
set wildmenu wildmode=list:full

" カッコの自動補完
inoremap { {  }<Left><Left>
"inoremap { {}<Left>
inoremap ( ()<Left>
inoremap [ []<Left>
inoremap < <><Left>
inoremap ' ''<Left>
inoremap " ""<Left>
inoremap ` ``<Left>
inoremap <% <%  %><Left><Left><Left>
inoremap <R <%=  %><Left><Left><Left>
inoremap <U <%  %><Left><Left><Left>
inoremap <Bar> <Bar><Bar><Left>

" 試行錯誤した結果のカッコ内改行 (<CR> だけなぜか1文字ずれる
" 環境変わるたびに微調整しないとダメかも
inoremap {<CR> {<CR>}<Esc><S-o>
inoremap (<CR> (<CR>)<Esc><S-o><TAB>
inoremap [<CR> [<CR>]<Esc><S-o><TAB>
inoremap <<CR> <<CR>><Esc><S-o><TAB>

" 中に文字がいらない時も当然ある
inoremap "" ""
inoremap '' ''
inoremap () ()
inoremap [] []
inoremap {} {}
inoremap <> <>
inoremap `` ``

" PHPのアロー演算子
inoremap -^ ->
inoremap =~ =>

" Ruby
inoremap do<CR> do<CR>end<Esc><Up>o
inoremap def<space> def<CR>end<Esc><Up>A<space>

"HTML&CSSのコメント
inoremap <!- <!--  --><Left><Left><Left><Left>
inoremap <!! <!--  --><Left><Left><Left><Left>
inoremap <C <!--  --><Left><Left><Left><Left>
inoremap /* /*  */<Left><Left><Left>
inoremap /*<CR> /*<Esc>o*/<Esc><Up>o<TAB>
inoremap <S /*  */<Left><Left><Left>

" ノーマルモードへの帰還。ついでに保存
inoremap jj <Esc>:<C-u>w<CR>

" 辞書補完機能<C-x><C-k>
inoremap <C-x><C-x> <C-x><C-k>

" ファイルタイプごとに辞書ファイル参照
au FileType ruby :set dict=~/.vim/dict/ruby.dict
au FileType slim :set dict=~/.vim/dict/ruby.dict


" undo & redo,　Ctrl+r じゃなくてただのrでredoする
nnoremap r <C-r>

" daw : delete a word カーソル位置の単語を削除（神）
nnoremap da daw
nnoremap ca caw

" カーソル位置の「単語」を大文字小文字を逆に
nnoremap gau g~aw
" カーソル位置の「文字」を大文字小文字を逆に(giは使われてた)
""nnoremap giu ~

" 行内での先頭、末尾までの削除
nnoremap dh d0
nnoremap dl d$

" 行内での先頭、末尾までをコピー（ヤンク）(yh,ylは打ちにくいのでch,clでも)
nnoremap yh y0
nnoremap yl y$
nnoremap ch y0
nnoremap cl y$

" <br>を多用するので登録してみる
" (インデント修正アリナシどっちがいいのか分かんない)
nnoremap <B A<br><Esc>==

" TAB分割
" sなんとかだと操作しやすいらしいので、sだけを無効化->登録
nnoremap s <Nop>
" 新しいTAB、次TAB、前TAB
nnoremap st :<C-u>tabnew<CR>
nnoremap sl gt
nnoremap sh gT
nnoremap sn gt
nnoremap sp gT

" タブの並び替え
nnoremap tl :tabm +1<CR>
nnoremap th :tabm -1<CR>

" 画面内移動するのに覚えやすいように登録
nnoremap <C-j> <C-d>
nnoremap <C-k> <C-u>
nnoremap <S-j> <C-f>
nnoremap <S-k> <C-b>
nnoremap <C-h> ^
nnoremap <C-l> $

" 検索した後のハイライトを消すやつ
nnoremap <Esc><Esc> :nohlsearch<CR>

" xでの削除でヤンクが上書きされないように
noremap PP "0p
noremap x "_x

" 超多用するyypを短く
noremap yp yyp
noremap yyp yyp

" コピペした時に閉じタグにする。HTMLタグ想定
noremap ytp yypI<Right>/<Esc><Up>o<Esc>dit

" コメント // を入力モード入らず加えたい
noremap cm I// <Esc>
noremap cn I# <Esc>

noremap cii ci'
noremap cio ci"

noremap dii di'
noremap dio di"

noremap yii yi'
noremap yio yi"


" 末尾に ; セミコロンを入力モード入らず加えたい
noremap sm A;<Esc>

" 末尾に , カンマ
noremap sk A,<Esc>

" TAB挿入
noremap <C-t> i<TAB><Esc>


" 閉じタグ補完
""augroup MyXML
        ""autocmd!
        ""autocmd Filetype xml inoremap <buffer> </ </<C-x><C-o>
        ""autocmd Filetype xml inoremap <buffer> << </<C-x><C-o>
        ""autocmd Filetype html inoremap <buffer> </ </<C-x><C-o>
        ""autocmd Filetype html inoremap <buffer> << </<C-x><C-o>
        ""autocmd Filetype ctp inoremap <buffer> </ </<C-x><C-o>
        ""autocmd Filetype ctp inoremap <buffer> << </<C-x><C-o>
        ""autocmd Filetype eruby inoremap <buffer> </ </<C-x><C-o>
        ""autocmd Filetype eruby inoremap <buffer> << </<C-x><C-o>
""augroup END

" カッコ内のインデント
""function! IndentBraces()
""      let nowletter = getline(".")[col(".")-1]
""      let beforeletter = getline(".")[col(".")-2]
""
""      if nowletter == "}" && beforeletter == "{}"
""              return "\n\t\n<UP>\<RIGHT>"
""      else
""              return "\n"
""      endif
""endfunction
""inoremap <silent> <expr> <CR> IndentBraces()

" HTMLの閉じタグを補完生成して、なおかつ入力モードにする
nnoremap tag yypa/<Esc>cit
nnoremap tt yypa/<Esc>cit

" コピペする際に多用するので短く
command SP :set paste
command SNP :set nopaste
command NBI :NeoBundleInstall

" 開いているファイルのパス 
command PWD :echo expand("%:p")

" 謎の修正
syntax on
"hi Comment ctermfg=darkcyan
hi Comment ctermfg=lightyellow

" カーソルを前回位置に
augroup vimrcEx
  au BufRead * if line("'\"") > 0 && line("'\"") <= line("$") |
  \ exe "normal g`\"" | endif
augroup END

" undo履歴を残す
if has('persistent_undo')
        set undodir=~/.vimundo
        set undofile
endif

" RubyのTABを2スペースにする
filetype plugin on

" ファイルタイプごとの設定
augroup fileTypeIndent
        autocmd!
        autocmd BufNewFile,BufRead *.py setlocal tabstop=4 softtabstop=4 shiftwidth=4
        autocmd BufNewFile,BufRead *.rb setlocal tabstop=2 softtabstop=2 shiftwidth=2
        autocmd BufNewFile,BufRead *.erb setlocal tabstop=2 softtabstop=2 shiftwidth=2
augroup END

filetype plugin indent on

" surround.vim 導入
" vでの選択後、S<div>で囲む
" dst 削除
" cst<span> 変更


" Plugin
```

NeoBundleってなんかあったなぁ……。

試したけど全然分からなくて何も使ってない気がします。Ctrl+nでの入力済みキーワード補完とかもデフォルトであるはずだし。

Vimは『実践Vim 思考のスピードで編集しよう！』を1回試すのが何より良いと思います。

Ctrl + h,j,k,l
↑
このカーソル移動は個人的に勝手に設定してるやつです。気を付けて下さい。

ただ個人的には欠かせないほど慣れた設定です。