sonoshouのまじめなブログ

情報系大学生からのウェブ見習い人生の記録

ぼくがかんがえたさいきょうのえでぃた

最近のメモ用途には、SublimeTextが最強だと思っています。(2014年1月5日更新)
SublimeText で Markdown




皆さん、エディタは普段のメモからプログラミングまで幅広く付き合っていると思います。

最近、僕は一番使いやすいエディタは何なのだろうと模索していました。

その結果、メモなど常用するためのエディタは、
KaoriYaさんのgvimが最強だという結論に至りました。

KaoriYa
http://www.kaoriya.net/


エディタといえば、
EmacsかViのどちらかですよね?

詳しくはWikipediaを見て下さい。
Wikipedia:エディタ戦争

僕は断然Vi派です。
というわけで、Viを基調にしたエディタを探していたのですが、
結局王道のKaoriYaさんのgvimを自分好みに最適化するという結論に至りました。

というわけで、今回は僕が自分好みに最適化した様をご紹介しようと思います。
そうです。僕の備忘録です。


本エントリーは3ステップになっております。

  1. vimrcの編集。
  2. カラースキームの変更。
  3. 簡単に表が書けるプラグインの導入。

それでは、順にご紹介します。

※注意
今回のエントリーはWindows版を対象としています。

Macの方は、
macvim-kaoriya
【Vim】Alt キーを Meta キーとして使う
を参考にして下さい。
また、ベースにMacVimを使用するので、vimrcやgvimrcの記述が若干異なります。
適宜読み替えて下さい。
以上に注意すれば、基本的に下記と同様の手順で設定できます。

vimrcの編集

これに関しては、僕のvimrcを見てもらうことが手っ取り早いですね。
と言っても僕はvimrcを書けないので、他人のvimrcのいいとこ取りをしただけです。

 "引用元 http://vimwiki.net/?vimrc%2F9 
 " URL: http://vim.wikia.com/wiki/Example_vimrc
 " Authors: http://vim.wikia.com/wiki/Vim_on_Freenode
 " Description: A minimal, but feature rich, example .vimrc. If you are a
 "              newbie, basing your first .vimrc on this file is a good choice.
 "              If you're a more advanced user, building your own .vimrc based
 "              on this file is still a good idea.
 
 "------------------------------------------------------------
 " Features {{{1
 "
 " These options and commands enable some very useful features in Vim, that
 " no user should have to live without.
 
 " Set 'nocompatible' to ward off unexpected things that your distro might
 " have made, as well as sanely reset options when re-sourcing .vimrc
 " Vi互換モードをオフ(Vimの拡張機能を有効)
 set nocompatible
 
 " Attempt to determine the type of a file based on its name and possibly its
 " contents.  Use this to allow intelligent auto-indenting for each filetype,
 " and for plugins that are filetype specific.
 " ファイル名と内容によってファイルタイプを判別し、ファイルタイププラグインを有効にする
 filetype indent plugin on
 
 " Enable syntax highlighting
 " 色づけをオン
 syntax on
 
 
 "------------------------------------------------------------
 " Must have options {{{1
 "
 " These are highly recommended options.
 " 強く推奨するオプション
 
 " One of the most important options to activate. Allows you to switch from an
 " unsaved buffer without saving it first. Also allows you to keep an undo
 " history for multiple files. Vim will complain if you try to quit without
 " saving, and swap files will keep you safe if your computer crashes.
 " バッファを保存しなくても他のバッファを表示できるようにする
 set hidden
 
 " Better command-line completion
 " コマンドライン補完を便利に
 set wildmenu
 
 " Show partial commands in the last line of the screen
 " タイプ途中のコマンドを画面最下行に表示
 set showcmd
 
 " Highlight searches (use <C-L> to temporarily turn off highlighting; see the
 " mapping of <C-L> below)
 " 検索語を強調表示(<C-L>を押すと現在の強調表示を解除する)
 set hlsearch
 
 " Modelines have historically been a source of security vulnerabilities.  As
 " such, it may be a good idea to disable them and use the securemodelines
 " script, <http://www.vim.org/scripts/script.php?script_id=1876>.
 " 歴史的にモードラインはセキュリティ上の脆弱性になっていたので、
 " オフにして代わりに上記のsecuremodelinesスクリプトを使うとよい。
 " set nomodeline
 
 
 "------------------------------------------------------------
 " Usability options {{{1
 "
 " These are options that users frequently set in their .vimrc. Some of them
 " change Vim's behaviour in ways which deviate from the true Vi way, but
 " which are considered to add usability. Which, if any, of these options to
 " use is very much a personal preference, but they are harmless.
 
 " Use case insensitive search, except when using capital letters
 " 検索時に大文字・小文字を区別しない。ただし、検索後に大文字小文字が
 " 混在しているときは区別する
 set ignorecase
 set smartcase
 
 " Allow backspacing over autoindent, line breaks and start of insert action
 " オートインデント、改行、インサートモード開始直後にバックスペースキーで
 " 削除できるようにする。
 set backspace=indent,eol,start
 
 " When opening a new line and no filetype-specific indenting is enabled, keep
 " the same indent as the line you're currently on. Useful for READMEs, etc.
 " オートインデント
 set autoindent
 
 " Stop certain movements from always going to the first character of a line.
 " While this behaviour deviates from that of Vi, it does what most users
 " coming from other editors would expect.
 " 移動コマンドを使ったとき、行頭に移動しない
 set nostartofline
 
 " Display the cursor position on the last line of the screen or in the status
 " line of a window
 " 画面最下行にルーラーを表示する
 set ruler
 
 " Always display the status line, even if only one window is displayed
 " ステータスラインを常に表示する
 set laststatus=2
 
 " Instead of failing a command because of unsaved changes, instead raise a
 " dialogue asking if you wish to save changed files.
 " バッファが変更されているとき、コマンドをエラーにするのでなく、保存する
 " かどうか確認を求める
 set confirm
 
 " Use visual bell instead of beeping when doing something wrong
 " ビープの代わりにビジュアルベル(画面フラッシュ)を使う
 set visualbell
 
 " And reset the terminal code for the visual bell.  If visualbell is set, and
 " this line is also included, vim will neither flash nor beep.  If visualbell
 " is unset, this does nothing.
 " そしてビジュアルベルも無効化する
 set t_vb=
 
 " Enable use of the mouse for all modes
 " 全モードでマウスを有効化
 set mouse=a
 
 " Set the command window height to 2 lines, to avoid many cases of having to
 " "press <Enter> to continue"
 " コマンドラインの高さを2行に
 set cmdheight=2
 
 " Display line numbers on the left
 " 行番号を表示
 set number
 
 " Quickly time out on keycodes, but never time out on mappings
 " キーコードはすぐにタイムアウト。マッピングはタイムアウトしない
 set notimeout ttimeout ttimeoutlen=200
 
 " Use <F11> to toggle between 'paste' and 'nopaste'
 " <F11>キーで'paste'と'nopaste'を切り替える
 set pastetoggle=<F11>
 
 
 "------------------------------------------------------------
 " Indentation options {{{1
 " インデント関連のオプション {{{1
 "
 " Indentation settings according to personal preference.
 
 " Indentation settings for using 2 spaces instead of tabs.
 " Do not change 'tabstop' from its default value of 8 with this setup.
 " タブ文字の代わりにスペース2個を使う場合の設定。
 " この場合、'tabstop'はデフォルトの8から変えない。
 set shiftwidth=2
 set softtabstop=2
 set expandtab
 
 " Indentation settings for using hard tabs for indent. Display tabs as
 " two characters wide.
 " インデントにハードタブを使う場合の設定。
 " タブ文字を2文字分の幅で表示する。
 "set shiftwidth=2
 "set tabstop=2
 
 
 "------------------------------------------------------------
 " Mappings {{{1
 " マッピング
 "
 " Useful mappings
 
 " Map Y to act like D and C, i.e. to yank until EOL, rather than act as yy,
 " which is the default
 " Yの動作をDやCと同じにする
 map Y y$
 
 " Map <C-L> (redraw screen) to also turn off search highlighting until the
 " next search
 " <C-L>で検索後の強調表示を解除する
 nnoremap <C-L> :nohl<CR><C-L>
 
 
 "------------------------------------------------------------


"引用元 http://gravity-crim.blogspot.jp/2011/06/vimemacs-2_20.html
" インサートモード時の Emacs キーバインド
"
inoremap <C-p> <Up>
inoremap <C-n> <Down>
inoremap <C-b> <Left>
inoremap <C-f> <Right>
inoremap <C-e> <End>
inoremap <C-a> <Home>
inoremap <C-h> <Backspace>
inoremap <C-d> <Del>
" カーソル位置の行をウィンドウの中央に来るようにスルロール
inoremap <C-l> <C-o>zz
" カーソル以前の文字を削除
inoremap <C-u> <C-o>d0
" カーソル以降の文字を削除
inoremap <C-k> <C-o>D
" アンドゥ
inoremap <C-x>u <C-o>u
" 貼りつけ
inoremap <C-y> <C-o>P
" カーソルから単語末尾まで削除
inoremap <F1>d <C-o>dw
" ファイルの先頭に移動
inoremap <F1>< <Esc>ggI
" ファイルの末尾に移動
inoremap <F1>> <Esc>GA
" 下にスクロール
inoremap <C-v> <C-o><C-f>
" 上にスクロール
inoremap <F1>v <C-o><C-b>
" Ctrl-Space で補完
" Windowsは <Nul>でなく <C-Space> とする
"inoremap <Nul> <C-n>
inoremap <C-Space> <C-n>


"sonoshoou start
inoremap { {}<LEFT>
inoremap [ []<LEFT>
inoremap ( ()<LEFT>
inoremap " ""<LEFT>
inoremap ' ''<LEFT>
inoremap <A--> --------------------------------------------------
inoremap <A-=> ==================================================
inoremap <A-.> <ESC>i+<ESC>V>$a
inoremap <A-,> <ESC>i-<ESC>V>>$a
inoremap <A-/> =><ESC>V>$a
inoremap <A-0> 0.
inoremap <A-1> 1.
inoremap <A-2> 2.
inoremap <A-3> 3.
inoremap <A-4> 4.
inoremap <A-5> 5.
inoremap <A-6> 6.
inoremap <A-7> 7.
inoremap <A-8> 8.
inoremap <A-9> 9.
inoremap <S-ENTER> <ESC>o<SPACE><LEFT><DELETE> 
"ファイルの保存"
inoremap <C-x>s <ESC>:w<ENTER>i
"ファイルを閉じる"
inoremap <C-x>k <ESC>:q<ENTER>
"全て選択"
inoremap <C-x>h <ESC>ggVG
"改行コード表示"
set list

"sonoshou end 

"クリップボード共有"
set statusline=%<%f\ %m%r%h%w%{'['.(&fenc!=''?&fenc:&enc).']['.&ff.']'}%=%l,%c%V%8Pt clipboard=unnamed

set fileencodings=iso-2022-jp,utf-8,cp932,euc-jp,default,lati

"タブモード
"http://www.mk-mode.com/wordpress/2012/06/04002036/
":tabn(:tabnext)	右となりのタブへ移動
":tabc(:tabclose)	今いるタブを閉じる
":tabe(:tabedit)	新しいタブを開く
set showtabline=2 

"日本語入力固定モード
"https://sites.google.com/site/fudist/Home/vim-nihongo-ban/vim-japanese/ime-control#statusline

" 「日本語入力固定モード」がオンの場合、ステータス行にメッセージ表示
set statusline+=%{IMStatus('[日本語固定]')}

" im_control.vimがない環境でもエラーを出さないためのダミー関数
function! IMStatus(...)
  return ''
endfunction

"バックアップファイルとスワップファイルの設定
"どちらも生成しない。
"http://d.hatena.ne.jp/RKTM/20070825/1188065053
set nobackup
set noswapfile

今はこんな感じですが、適宜変えていきそうです。


カラースキームの変更

デフォルトのエディタのカラースキームが気に食わなかったので、変更しました。

数あるカラースキームからwombatを選びました。
下の方に画像を掲載しました。
(半透明の)黒地に白文字でなかなか見やすいです。

wombat
http://www.vim.org/scripts/script.php?script_id=1778

このファイルをダウンロードして、

vim/runtime/colors/
or
vim/colors/

の中にwombat.vimを入れ込みます。
※ダウンロードしたバージョンによって場所が異なるのかもしれません。
 (私の思い違いの可能性もあります。)
 colorsフォルダを適宜捜してみてください。

そして、gvimrcに

"---------------------------------------------------------------------------
" カラー設定:
"colorscheme morning
colorscheme wombat

" Copyright (C) 2011 KaoriYa/MURAOKA Taro
"独自に見た目を設定
set guioptions-=T " ツールバーを非表示
set lines=60 columns=100 " 初期画面のサイズ設定
gui
set transparency=240 " ウインドウを半透明に" カラー設定:
"colorscheme morning

"---------------------------------------------------------------------------

と該当箇所に入力すれば設定完了です。

参考URL:http://qiita.com/items/89c6c983732a4ed26e1a



うまく設定できていると以下のようになります。

ね?テンション上がったでしょ?


簡単に表が書けるプラグインの導入

エディタで表を書きたい時ってありますよね。
ただ、そういうときわざわざ空白文字やらタブやらで見やすいように
文字を整形するのは面倒。

そんな方は
高性能なテキスト整形ツールAlign
をインストールしましょう。

  1. http://www.vim.org/scripts/script.php?script_id=294Align.vba.gzをダウンロード。
  2. ダウンロードしたファイルを解凍する。
  3. vimで解凍されたAlign.vbaを開く。
  4. :so %」と打ち込む。

以上です。

以下のサイトからほぼ引用しました。
インストール方法や使い方の詳細等は以下のサイトが詳しいです。

高性能なテキスト整形ツールAlignの使い方 名無しのvim使い

日本語の入力の切り替え

インストール時の設定ですと、
日本語でvimを使おうとすると、なかなか使いづらいです。
以下のページでお勉強しましょう。

fudist

上記のページを参考に、僕が行った設定を紹介。

Vim/GVimで「日本語入力固定モード」を使用する

<インストール方法>
1.ページ内のim_control.vimをダウンロード
2.m_control.vimを .vim/plugin (vimfiles/plugin)などランタイムパスの通った場所にコピー
以上です。

<使い方>
挿入モード時、<C-^>でIMEを切り替え。

簡単ですが、これでかなり使いやすくなるはずです。