Memo/Linux/vim

http://dexlab.net/pukiwiki/index.php?Memo/Linux/vim
 

vim


複数行の行頭/行末に文字を挿入

  • 行頭に「#」を挿入
  1. 「Ctrl + V」でビジュアル矩形モード。挿入したい複数行を選択
  2. 「Shift + i」で挿入モード
  3. 行頭に挿入したい文字「#」を入力
  4. ESCでノーマルモード。挿入される
  • 行末に「,」を挿入
  1. 「Ctrl + V」でビジュアル矩形モード。挿入したい複数行を選択
  2. 「$」で行末まで選択
  3. 「A」で挿入モード
  4. 行末に挿入したい文字「,」を入力
  5. ESCでノーマルモード。挿入される

自動インデント無効でペースト

  1. コマンド入力
    • appendモード ":a!"
    • insertモード ":i!"
  2. ペースト
  3. ESC

文字コードと改行コード

  1. " vim内部エンコードの表示
  2. :set enc?
  3.  
  4. " 〃                 設定
  5. :set encoding=utf-8
  6.  
  7. " ファイルエンコードの表示
  8. :set fenc?
  9.  
  10. " 〃                  設定
  11. :fileencoding=utf-8
  12.  
  13. " 改行コードの表示
  14. :set ff?
  15.  
  16. " 〃          設定
  17. :set fileformat=unix

Error detected while processing

  • vimプラグインを入れた状態でcrontabで編修しようとすると出る
    1. crontab -e
    2. Error detected while processing /home/user1/.vimrc:
    3. line    8:
    4. E492: Not an editor command: Bundle 'gmarik/vundle'
    5. line   18:
    6. E492: Not an editor command: Bundle 'L9'
    7. line   19:
    8. E492: Not an editor command: Bundle 'FuzzyFinder'
    9. line   23:
    10. E492: Not an editor command: Bundle 'https://github.com/uguu-org/vim-matrix-screensaver'
    11. Press ENTER or type command to continue
  • デフォルトのエディタをvimに変更する
    1. vim ~/.bash_profile
    2. ----
    3. export EDITOR=/usr/bin/vim
    4. ----
    5. source ~/.bash_profile

プラグイン

  • crontab等でエラーが出ないように、デフォルトのエディタをvimに変更する
    1. vim ~/.bash_profile
    2. ----
    3. export EDITOR=/usr/bin/vim
    4. ----
    5. source ~/.bash_profile
  • インストール(例:Matrixプラグイン)
    1. mkdir -p ~/.vim/{doc,plugin}
    2.  
    3. wget -O ~/.vim/plugin/matrix.vim "http://www.vim.org/scripts/download_script.php?src_id=18650"
    4.  
    5. vim
    6. :Matrix
    7. qで終了

matrix:マトリックス風スクリーンセーバー


FuzzyFinder?:ディレクトリからファイル検索

  • FuzzyFinder
    • カレントディレクトリのファイルを検索して表示、選択、インクリメンタル検索。"**/"を付けるとサブディレクトリ中のファイルも表示してくれる。
    • インストール
      1. vim ~/.vimrc
      2. ----
      3. NeoBundle 'L9'
      4. NeoBundle 'FuzzyFinder'
      5. ----
      6. :NeoBundleInstall
    • 使い方
      1. :FufFile **/

NeoBundle?:プラグイン管理

  • NeoBundle Vundleの改良版。プラグインの管理
    • Vim - NeoBundleの導入 - Qiita [キータ]
    • インストール
      1. mkdir -p ~/.vim/bundle
      2. git clone https://github.com/Shougo/neobundle.vim ~/.vim/bundle/neobundle.vim
      3.  
      4. # .vimrcの編集。以下を先頭に追加
      5. set nocompatible
      6. filetype off
      7.  
      8. if has('vim_starting')
      9.   set runtimepath+=~/.vim/bundle/neobundle.vim
      10.   call neobundle#rc(expand('~/.vim/bundle'))
      11. endif
      12.  
      13. " My Bundles here:
      14. "
      15. " original repos on github
      16.  
      17.  
      18. " vim-scripts repos
      19. NeoBundle 'L9'
      20. NeoBundle 'FuzzyFinder'
      21.  
      22. " non github repos
      23.  
      24. filetype plugin on
      25. " 自動インデントされるのが嫌なので無効
      26. "filetype plugin indent on
    • プラグインインストール。NeoBundle?行を追加してから
      1. :NeoBundleInstall
    • プラグインアップデート
      1. :NeoBundleUpdate
    • プラグインアンインストール。NeoBundle?行を削除してから
      1. :NeoBundleClean

Vundle:プラグイン管理

  • Vundle
    • pluginを.vimrcで管理し、:BundleInstall? コマンドでインストールできる
    • pluginは ~/.vim/bundle/ にインストールされる
    • 記事
    • インストール
      1. git clone https://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
      2.  
      3. # .vimrcの編集。以下を先頭に追加
      4. vim ~/.vimrc
      5. ----
      6. set nocompatible               " be iMproved
      7. filetype off                   " required!
      8.  
      9. set rtp+=~/.vim/bundle/vundle/
      10. call vundle#rc()
      11.  
      12. " let Vundle manage Vundle
      13. " required! 
      14. Bundle 'gmarik/vundle'
      15.  
      16. " My Bundles here:
      17. "
      18. " original repos on github
      19. "Bundle 'tpope/vim-fugitive'
      20. "Bundle 'Lokaltog/vim-easymotion'
      21. "Bundle 'rstacruz/sparkup', {'rtp': 'vim/'}
      22. "Bundle 'tpope/vim-rails.git'
      23.  
      24. " vim-scripts repos
      25. Bundle 'L9'
      26. Bundle 'FuzzyFinder'
      27.  
      28. " non github repos
      29. "Bundle 'git://git.wincent.com/command-t.git'
      30.  
      31. " 自動インデントされるのが嫌なので無効
      32. "filetype plugin indent on
      33. ----
    • プラグインのインストールを実行。~/.vimrcを編集してから
      1. vim
      2. ----
      3. :BundleInstall
      4. ----
    • インストール済みプラグインのアップグレード
      1. vim
      2. ----
      3. :BundleInstall!
      4. ----
    • vim-scripts リポジトリからプラグイン検索
      1. vim
      2. ----
      3. :BundleSearch plugin_name
      4. # または
      5. :Bundles plugin_name
      6. ----
    • プラグインの削除
      1. # .vimrcの該当行を削除して保存し、:BundleCleanを実行
      2. vim ~/.vimrc
      3. ----
      4. Bundle 'plugin_name'
      5.  
      6. :BundleClean
      7. Continue? [Y/n]: y
      8. ----
      9.  
      10. # もしくは直接削除
      11. rm -rf ~/.vim/bundle/plugin_name

読み込み専用viewコマンド

  • view : 読み込み専用で開く。「vim -R ファイル名」と同じ

任意の場所に.vimrcを置く

  1. vim -u [.vimrc] editfile
  2.  
  3. alias vi='vim -u $HOME/sample/.vimrc'

.vimrcのコメントアウト

  • 行頭に「"」を使う

カラースキーマ

  • デフォルトでは/matchで探した場合の文字の色がよく見えない
  • 設定
    1. mkdir -p ~/.vim/colors
    2. cp sample_color.vim ~/.vim/colors/
    3. vi ~/.vimrc
    4. ----
    5. syntax enable
    6. set background=dark
    7. colorscheme sample_color
    8. ----

.vimrcでモードラインの設定

シェルスクリプト毎にTAB4で開きたい等の設定ができる

  • モードラインを有効にする必要がある
    1. cat >> ~/.vimrc << 'EOS'
    2. " ファイルの上下端からn行までモードラインを探す(デフォルト5行)
    3. "set modelines=5
    4. " ファイルごとにエディタの設定を変更
    5. set modeline
    6. " バックアップを取らない
    7. set nobackup
    8. " 行番号を表示(コピペしにくいためオフ)
    9. "set number
    10. " TAB 4桁
    11. set tabstop=4
    12. " 80カラム(ウィンドウサイズによって変わった方が便利なのでオフ)
    13. "set columns=80
    14. " インクリメンタル検索
    15. set incsearch
    16. " 検索結果をハイライト表示
    17. set hlsearch
    18. " 小文字のみで検索:大文字小文字無視、大文字小文字で検索:区別して検索
    19. set smartcase
    20. " 対応する括弧やブレースを表示
    21. set showmatch
    22. " vim内部エンコード
    23. set encoding=utf-8
    24. " バッファの保存時に用いるエンコーディング
    25. set fileencoding=utf-8
    26. " バッファの改行コード
    27. set fileformat=unix
    28. " 改行コードの自動認識
    29. set fileformats=unix,dos,mac
    30. " 文字コードの自動認識
    31. set fileencodings=ucs-bom,utf-8,iso-2022-jp,sjis,cp932,euc-jp,cp20932
    32. " 構文ハイライト
    33. syntax enable
    34. " 背景色に合わせたカラー設定
    35. set background=dark
    36. " カラースキーマ
    37. colorscheme koehler
    38. " タブ、空白の可視化。改行(eol:)
    39. set list
    40. set listchars=tab:>\ ,trail:-,extends:>,precedes:<
    41. " 自動改行の無効化
    42. set tw=0
    43. " コメント文字自動挿入の無効化~
    44. autocmd FileType * setlocal formatoptions-=ro~
    45. " 自動インデントの無効化
    46. set nosmartindent
    47. set noautoindent
    48. EOS
  • 例:hoge.sh ファイルの上下端から5行以内に書く
    1. #!/bin/bash
    2. # vim: ts=4 sw=4

vimでlocaleが無視される場合。

.vimrcの「set encoding=Japan」を削除したらOKだった。

  1. vim ~/.vimrc
  2. ---- 
  3. set encoding=Japan

rootでviで編集する場合に色が変わらない場合

一般ユーザで編集した場合色付けされるが、rootで編集した場合色づけされない。
一般ユーザの場合、vimにaliasが貼られている。rootでも色づけしたい場合は、aliasを貼ってやれば良い。

  1. vi .bashrc
  2. alias vi='vim'
  • root
    1. which vi
    2. /bin/vi
  • 一般
    1. which vi
    2. alias vi='vim'
    3.    /usr/bin/vim
    改行コードの表示
    :set ff?

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-08-25 (火) 12:53:51 (1092d)