vimで使うキーの機能使用頻度と打ちやすさを整理してみました。 今回整理したのはnormalモードについてだけです。 機能の使用頻度と打ちやすさは、完全に個人の見解です。 キーボードによっても打ちやすさは変わると思います。
すべてのキーを網羅しているわけではありません。
| " 検索文字列をレジスタでグローバル置換 | |
| function! s:ReplaceGlobalSearchToRegister() | |
| let l:reg = getreg(v:register) | |
| let l:cmd = '%substitute//' | |
| let l:opt = '/g' | |
| execute l:cmd . l:reg . l:opt | |
| endfunction | |
| nnoremap <silent> <Space>rs :<C-u>call <SID>ReplaceGlobalSearchToRegister()<CR> |
| # add print class tree method to Object | |
| class Object | |
| def self.print_class_tree | |
| @class_tree ||= {} | |
| # create class tree if not yet | |
| ObjectSpace.each_object(Class) do |cls| | |
| next if self == cls | |
| # skip is cls is no name |
| " Inspired by ujihisa's vimrc | |
| function! s:GitLogViewer() | |
| " vnewだとコミットメッセージが切れてしまうのでnew | |
| new | |
| VimProcRead git log -u 'ORIG_HEAD..HEAD' | |
| set filetype=git-log.git-diff | |
| setlocal foldmethod=expr | |
| setlocal foldexpr=getline(v:lnum)=~'^commit'?'>1':getline(v:lnum+1)=~'^commit'?'<1':'=' | |
| setlocal foldtext=FoldTextOfGitLog() | |
| endfunction |
| -----> Fetching custom git buildpack... done | |
| -----> Ruby/Rack app detected | |
| -----> Vendoring binaries | |
| Fetching cairo-1.12.8.tgz | |
| /tmp/build_2z0sqxbwxc8m1/vendor/cairo-1.12.8 | |
| Exporting cairo-1.12.8.tgz build and include paths | |
| Fetching pixman-0.28.0.tgz | |
| /tmp/build_2z0sqxbwxc8m1/vendor/pixman-0.28.0 | |
| Exporting pixman-0.28.0.tgz build and include paths | |
| -----> Using Ruby version: ruby-2.0.0 |
| function! s:fix_number(pattern, ...) | |
| if a:0 > 2 | |
| return | |
| endif | |
| let s:start = exists('g:fix_number_default_start') ? g:fix_number_default_start : 0 | |
| let s:step = exists('g:fix_number_default_step') ? g:fix_number_default_step : 1 | |
| if a:0 >= 1 | |
| let s:start = a:1 |
| NeoBundle 'tyru/open-browser' | |
| nnoremap gz vi':<C-u>call ExecuteWithSelectedText('OpenBrowser https://github.com/%s')<CR> | |
| vnoremap gz :<C-u>call ExecuteWithSelectedText('OpenBrowser https://github.com/%s')<CR> | |
| " visualモードで最後に選択したテキストを%sで指定してコマンドを実行する {{{ | |
| function! ExecuteWithSelectedText(command) | |
| if a:command !~? '%s' | |
| return | |
| endif |
| NeoBundle 'tyru/open-browser' | |
| NeoBundle 'kana/vim-operator-user' | |
| call operator#user#define('open-neobundlepath', 'OpenNeoBundlePath') | |
| map gz <Plug>(operator-open-neobundlepath) | |
| function! OpenNeoBundlePath(motion_wise) | |
| if line("'[") != line("']") | |
| return | |
| endif | |
| let start = col("'[") - 1 |