Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

vi,vimコマンド備忘録

$
0
0

vi,vimコマンド備忘録

大体覚えてはいるが、度忘れしたときの自分用の備忘録として残します。

■カーソル移動■

keykey2Action
hBS1文字左へ移動(←)
jCtrl + N1行下へ移動(↓)
kCtrl + P1行上へ移動(↑)
lSPACE1文字右に移動(→)
0-行の頭へ移動
$-行の最後へ移動
Ctrl + F-1ページ下へ
Ctrl + B-1ページ上へ
Ctrl + D-半ページ下へ
Ctrl + U-半ページ上へ

■入力・編集■

(コマンドモードでここのコマンドを入力すると入力モードになります)

keyAction
aカーソルの右から入力開始
A行末から入力開始
iカーソルの左から入力開始
I行頭から入力開始
o現在の行の下に1行挿入し、その行頭から入力開始
O現在の行の上に1行挿入し、その行頭から入力開始

■削除■

keyAction
xカーソル上の1文字削除
Xカーソルの左の文字を1文字削除
dd現在の行を削除(バッファにコピーされる)
nddn行、削除
dwカーソル上の一語を削除
d$カーソル位置から行の最後までを削除
:行1, 行2d 行1 から行2 を削除

■検索■

keyAction
/<文字列>文字列 を検索する
?<文字列>文字列を検索する(逆方向)
n順方向へ検索する
N逆方向へ検索する

■置換■

keyAction
rカーソル上の1文字を他の1文字に置換
Rカーソル上の文字からEscが押されるまでの文字列を置換
sカーソルのある1文字を他の文字列で置換
S現在の行を他の文字列で置換
cwカーソル位置からこの語の最後までを置換
cf 字カーソル位置から指定した字 までを置換
Cカーソル位置から行の最後までを置換
:&,& 直前のsコマンドの繰り返し
:%s/置換え前/置換え後置換え前の文字列を、置換え後の文字列で置換
もっとも近くにある文字列一つに対してのみ実行
:%s/置換え前/置換え後/gファイルの中すべての文字列に対して、置換えを行う
~(チルダ)大文字/小文字を変更する

■カット&ペースト■

keyAction
yy現在の行をバッファにコピー
nyyn行分をバッファにコピー
yw単語をバッファにコピー
pバッファ内のテキストを挿入
(文字、単語はカーソルの右に、行は現在の行の下に挿入される)
Pバッファ内のテキストを挿入
(挿入位置はpの逆。文字、単語はカーソルの左に、行は現在の行の上に挿入される)

■Undo・Redo■

keyAction
u直前の操作を取りやめる
U行全体の操作を取りやめる
.直前の操作の繰り返し

■ファイル操作■

keyAction
:w [ファイル名]現在のファイル(指定ファイル)に保存
:w! [ファイル名]書き込みを強行
:行1, 行2 [ファイル名]ファイル名 行1 から行2 のテキストをファイルに保存
:w >> [ファイル名]現行ファイルの最後に書き加える
:r [ファイル名]現在の行の次の行にファイルを読み込み、挿入する
:r現在の行の次の行に現在のファイルを読み込み、挿入する
:args編集ファイルの一覧を表示する
:n複数個のファイル編集時、次のファイルを編集対象とする
:e#一つ前の編集ファイルに戻る
:e!%現在のファイルを再ロードして、最初から編集をやり直す
:e [ファイル名]指定ファイルを編集対象とする
:e ++enc=<文字コード>現在のファイルを指定した文字コードで再ロードする
:rewind現在のファイルの変更内容を保存して、リストの最初から編集をやり直す
:rewind!現在のファイルの変更内容を保存しないで、リストの最初から編集をやり直す

■終了■

keyAction
ZZviを終了(内容が変更されている場合は保存)
:wqファイルに保存してvi終了
:qviを終了(内容が変更されている場合は警告)
:q!viの強制終了(内容が変更されていても保存されない)

■UNIXコマンドの実行■

keyAction
:!<コマンド><コマンド>を実行する
:!!直前の<コマンド>を再実行する
:sh一時的にシェルに戻る。exitでviに戻る。

■コマンドのフィルタリング■

keyAction
!<コマンド><コマンド>を実行して結果を挿入
!!datedateコマンドの結果の挿入
!!tr A-Z a-zカーソル行の大文字を小文字に変換

■テキスト入力の略記■

keyAction
:ab <文字列> <置換え文字列><文字列>と入力すると<置換え文字列>に置き換えるように設定する
:unab <文字列><文字列>の置き換え設定を解除する
:ab一覧表示

■その他■

keyAction
Ctrl + Gファイル名、修正の有無、現在の行数などの情報が表示されます
Ctrl + L画面を再表示
Shift + Qexで編集をする
viexからviに戻る

■コマンド■

keyAction
:set number (もしくは:set nu)行番号を表示する
:set no number (もしくは:set nonu)行番号の表示をやめる
:set showmode現在のモードを表示する
:set showmatch() や {} の対応の報告をするようになる
:set ignorecase大文字/小文字の区別なく検索する
:set autoindent自動インデントモード
:set noautoindent自動インデントモードをやめる
:set allすべてのオプションを表示する
:set enc?viの文字コードを確認
:set fenc=<文字コード>ファイルの文字コード変更

■ショートカットキー集■

vim日本語チートシート
今更ながらvimチートシート
Vimチートシートを作りました(超初心者用)

■.vimrcの例 (vimの設定ファイル)■

"---------------------------------------------------- 
" 基本的な設定 
"---------------------------------------------------- 

" 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 

" インクリメンタルサーチ 
set incsearch

"クリップボードをWindowsと連携
set clipboard=unnamed

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

"カラースキーマ(zenburn,blackdust,desert等をダウンロードし~/vimfiles/coloersに配置)
coloerscheme zenburn

" タイトルをウインドウ枠に表示する 
set title 

" 行番号を表示しない 
set nonumber 

" ルーラーを表示 
set ruler

" 現在の行を強調表示
set cursorline

" タブ文字を CTRL-I で表示し、行末に $ で表示する 
"set list 

" 入力中のコマンドをステータスに表示する 
set showcmd 

" ステータスラインを常に表示 
set laststatus=2 

" 括弧入力時の対応する括弧を表示 
set showmatch 

" 対応する括弧の表示時間を2にする 
set matchtime=2 

" シンタックスハイライトを有効にする syntax on 
" 検索結果文字列のハイライトにする

set hlsearch
" ESC連打でハイライト解除 nmap <Esc><Esc> :nohlsearch<CR><Esc>
" コメント文の色を変更 
highlight Comment ctermfg=DarkCyan 

" コマンドライン補完を拡張モードにする
set wildmenu 

" 入力されているテキストの最大幅 
" (行がそれより長くなると、この幅を超えないように空白の後で改行される)を無効にする 
set textwidth=0 

" ウィンドウの幅より長い行は折り返して、次の行に続けて表示する 
set wrap 

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

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

"---------------------------------------------------- 
" インデント 
"---------------------------------------------------- 
" オートインデントを無効にする 
"set noautoindent 

" タブが対応する空白の数 
set tabstop=4 

" タブやバックスペースの使用等の編集操作をするときに、タブが対応する空白の数 
set softtabstop=4 

" インデントの各段階に使われる空白の数 
set shiftwidth=4 

" タブを挿入するとき、代わりに空白を使わない 
set noexpandtab 

"---------------------------------------------------- 
" 国際化関係 
"---------------------------------------------------- 

" 文字コードの設定 
" fileencodingsの設定ではencodingの値を一番最後に記述する 
set encoding=utf-8 
set termencoding=utf-8 
set fileencoding=utf-8 
set fileencodings=ucs-bom,euc-jp,cp932,iso-2022-jp 
set fileencodings+=,ucs-2le,ucs-2,utf-8 

"---------------------------------------------------- 
" オートコマンド 
"---------------------------------------------------- 

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 mouse=a 
set ttymouse=xterm2

"viをマスターするために
" 矢印キーを無効にする
noremap <Up> <Nop> 
noremap <Down> <Nop> 
noremap <Left> <Nop> 
noremap <Right> <Nop> 
inoremap <Up> <Nop> 
inoremap <Down> <Nop> 
inoremap <Left> <Nop> 
inoremap <Right> <Nop>

"---------------------------------------------------- 
" 独自設定 
"---------------------------------------------------- 

" スクロール時の余白確保 
set scrolloff=5 

" 他で書き換えられたら自動で読み直す 
set autoread 

" 行番号表示 
set number 

" インデント 
set autoindent

"複数行のクリップボードからの貼付けがおかしくなる。
":set paste
"を入力してから貼り付けをすれば、問題なく貼り付けができる。
set smartindent
set cindent 
set noexpandtab

" タブをスペースに展開しない 
" コマンド補完を開始するキー 
set wildchar=<tab> 
set whichwrap=b,s,h,l,<,>,[,] 

" カーソルを行頭、行末で止まらないようにする 
" キーバインド関係 
" 折り返し時に表示行単位での移動できるようにする
nnoremap j gj 
nnoremap k gk 

" カレントウィンドウにのみ罫線を引く augroup cch 
    autocmd! cch 
    autocmd WinLeave * set nocursorline         
    autocmd WinEnter,BufRead * set cursorline 
augroup END

●FencView.vimっていうプラグインを入れると
自動で文字コード判断してくれて便利です。
http://www.vim.org/scripts/script.php?script_id=1708


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>