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 |