From 245ca3a2b49c1a37a731172c6cbda46b6db603c2 Mon Sep 17 00:00:00 2001 From: Alex Frost Date: Wed, 16 Jul 2014 23:51:45 +0100 Subject: [PATCH 1/4] separate mac and linux vim keymaping --- vim/settings.vim | 13 ++++- vim/settings/yadr-keymap-linux.vim | 81 ++++++++++++++++++++++++++++++ vim/settings/yadr-keymap-mac.vim | 81 ++++++++++++++++++++++++++++++ vim/settings/yadr-keymap.vim | 72 -------------------------- 4 files changed, 174 insertions(+), 73 deletions(-) create mode 100644 vim/settings/yadr-keymap-linux.vim create mode 100644 vim/settings/yadr-keymap-mac.vim diff --git a/vim/settings.vim b/vim/settings.vim index e2538db..81c3141 100644 --- a/vim/settings.vim +++ b/vim/settings.vim @@ -1,4 +1,15 @@ +let vimsettings = '~/.vim/settings' +let uname = system("uname -s") + +for fpath in split(globpath(vimsettings, '*.vim'), '\n') + + if (fpath == expand(vimsettings) . "/yadr-keymap-mac.vim") && uname[:4] ==? "linux" + continue " skip mac mappings for linux + endif + + if (fpath == expand(vimsettings) . "/yadr-keymap-linux.vim") && uname[:4] !=? "linux" + continue " skip linux mappings for mac + endif -for fpath in split(globpath('~/.vim/settings', '*.vim'), '\n') exe 'source' fpath endfor diff --git a/vim/settings/yadr-keymap-linux.vim b/vim/settings/yadr-keymap-linux.vim new file mode 100644 index 0000000..fdc6008 --- /dev/null +++ b/vim/settings/yadr-keymap-linux.vim @@ -0,0 +1,81 @@ +" ======================================== +" Linux specific General vim sanity improvements +" ======================================== +" +" ======================================== +" RSI Prevention - keyboard remaps +" ======================================== +" Certain things we do every day as programmers stress +" out our hands. For example, typing underscores and +" dashes are very common, and in position that require +" a lot of hand movement. Vim to the rescue +" +" Now using the middle finger of either hand you can type +" underscores with Ctrl-k or Ctrl-d, and add Shift +" to type dashes +imap _ +imap _ +imap - +imap - + +" Change inside various enclosures with Ctrl-" and Ctrl-' +" The f makes it find the enclosure so you don't have +" to be standing inside it +nnoremap f'ci' +nnoremap f"ci" +nnoremap f(ci( +nnoremap f)ci) +nnoremap f[ci[ +nnoremap f]ci] + +" ==== NERD tree +" Ctrl-Shift-N for nerd tree +nmap :NERDTreeToggle + +" move up/down quickly by using Ctrl-j, Ctrl-k +" which will move us around by functions +nnoremap } +nnoremap { +autocmd FileType ruby map ]m +autocmd FileType ruby map [m +autocmd FileType rspec map } +autocmd FileType rspec map { +autocmd FileType javascript map } +autocmd FileType javascript map { + +" Command-/ to toggle comments +map :TComment +imap :TCommenti + +" Use Alt- numbers to pick the tab you want +map :tabn 1 +map :tabn 2 +map :tabn 3 +map :tabn 4 +map :tabn 5 +map :tabn 6 +map :tabn 7 +map :tabn 8 +map :tabn 9 + +" Create window splits easier. The default +" way is Ctrl-w,v and Ctrl-w,s. I remap +" this to vv and ss +nnoremap vv v +nnoremap ss s + +" Resize windows with arrow keys +nnoremap + +nnoremap - +nnoremap < +nnoremap > + +" ============================ +" Tabularize - alignment +" ============================ +" Hit Ctrl-Shift-A then type a character you want to align by +nmap :Tabularize / +vmap :Tabularize / + +" Source current file Ctrl-% (good for vim development) +map :so % diff --git a/vim/settings/yadr-keymap-mac.vim b/vim/settings/yadr-keymap-mac.vim new file mode 100644 index 0000000..73ab349 --- /dev/null +++ b/vim/settings/yadr-keymap-mac.vim @@ -0,0 +1,81 @@ +" ======================================== +" Mac specific General vim sanity improvements +" ======================================== +" +" ======================================== +" RSI Prevention - keyboard remaps +" ======================================== +" Certain things we do every day as programmers stress +" out our hands. For example, typing underscores and +" dashes are very common, and in position that require +" a lot of hand movement. Vim to the rescue +" +" Now using the middle finger of either hand you can type +" underscores with apple-k or apple-d, and add Shift +" to type dashes +imap _ +imap _ +imap - +imap - + +" Change inside various enclosures with Cmd-" and Cmd-' +" The f makes it find the enclosure so you don't have +" to be standing inside it +nnoremap f'ci' +nnoremap f"ci" +nnoremap f(ci( +nnoremap f)ci) +nnoremap f[ci[ +nnoremap f]ci] + +" ==== NERD tree +" Cmd-Shift-N for nerd tree +nmap :NERDTreeToggle + +" move up/down quickly by using Cmd-j, Cmd-k +" which will move us around by functions +nnoremap } +nnoremap { +autocmd FileType ruby map ]m +autocmd FileType ruby map [m +autocmd FileType rspec map } +autocmd FileType rspec map { +autocmd FileType javascript map } +autocmd FileType javascript map { + +" Command-/ to toggle comments +map :TComment +imap :TCommenti + +" Use numbers to pick the tab you want (like iTerm) +map :tabn 1 +map :tabn 2 +map :tabn 3 +map :tabn 4 +map :tabn 5 +map :tabn 6 +map :tabn 7 +map :tabn 8 +map :tabn 9 + +" Create window splits easier. The default +" way is Ctrl-w,v and Ctrl-w,s. I remap +" this to vv and ss +nnoremap vv v +nnoremap ss s + +" Resize windows with arrow keys +nnoremap + +nnoremap - +nnoremap < +nnoremap > + +" ============================ +" Tabularize - alignment +" ============================ +" Hit Cmd-Shift-A then type a character you want to align by +nmap :Tabularize / +vmap :Tabularize / + +" Source current file Cmd-% (good for vim development) +map :so % diff --git a/vim/settings/yadr-keymap.vim b/vim/settings/yadr-keymap.vim index 2c274a4..9cfde94 100644 --- a/vim/settings/yadr-keymap.vim +++ b/vim/settings/yadr-keymap.vim @@ -25,22 +25,6 @@ endfunction nnoremap 0 ^ nnoremap ^ 0 -" ======================================== -" RSI Prevention - keyboard remaps -" ======================================== -" Certain things we do every day as programmers stress -" out our hands. For example, typing underscores and -" dashes are very common, and in position that require -" a lot of hand movement. Vim to the rescue -" -" Now using the middle finger of either hand you can type -" underscores with apple-k or apple-d, and add Shift -" to type dashes -imap _ -imap _ -imap - -imap - - " ,# Surround a word with #{ruby interpolation} map ,# ysiw# vmap ,# c#{"} @@ -77,16 +61,6 @@ map ,` ysiw` " gary bernhardt's hashrocket imap => -" Change inside various enclosures with Cmd-" and Cmd-' -" The f makes it find the enclosure so you don't have -" to be standing inside it -nnoremap f'ci' -nnoremap f"ci" -nnoremap f(ci( -nnoremap f)ci) -nnoremap f[ci[ -nnoremap f]ci] - "Go to last edit location with ,. nnoremap ,. '. @@ -100,8 +74,6 @@ nnoremap ,. '. imap wa " ==== NERD tree -" Cmd-Shift-N for nerd tree -nmap :NERDTreeToggle " Open the project tree and expose current file in the nerdtree with Ctrl-\ nnoremap :NERDTreeFind:vertical res 30 @@ -110,23 +82,6 @@ nnoremap :NERDTreeFind:vertical res 30 nmap ,qc :cclose nmap ,qo :copen -" move up/down quickly by using Cmd-j, Cmd-k -" which will move us around by functions -nnoremap } -nnoremap { -autocmd FileType ruby map ]m -autocmd FileType ruby map [m -autocmd FileType rspec map } -autocmd FileType rspec map { -autocmd FileType javascript map } -autocmd FileType javascript map { - - -" Command-/ to toggle comments -map :TComment -imap :TCommenti - - "Move back and forth through previous and next buffers "with ,z and ,x nnoremap ,z :bp @@ -149,29 +104,12 @@ nnoremap gf :tabe " Zoom in map ,gz o -" Use numbers to pick the tab you want (like iTerm) -map :tabn 1 -map :tabn 2 -map :tabn 3 -map :tabn 4 -map :tabn 5 -map :tabn 6 -map :tabn 7 -map :tabn 8 -map :tabn 9 - " Create window splits easier. The default " way is Ctrl-w,v and Ctrl-w,s. I remap " this to vv and ss nnoremap vv v nnoremap ss s -" Resize windows with arrow keys -nnoremap + -nnoremap - -nnoremap < -nnoremap > - " create <%= foo %> erb tags using Ctrl-k in edit mode imap <%= %>3hi @@ -207,13 +145,6 @@ noremap ,hl :set hlsearch! hlsearch? nnoremap ' ` nnoremap ` ' -" ============================ -" Tabularize - alignment -" ============================ -" Hit Cmd-Shift-A then type a character you want to align by -nmap :Tabularize / -vmap :Tabularize / - " ============================ " SplitJoin plugin " ============================ @@ -223,8 +154,5 @@ nmap sk :SplitjoinJoin " Get the current highlight group. Useful for then remapping the color map ,hi :echo "hi<" . synIDattr(synID(line("."),col("."),1),"name") . '> trans<' . synIDattr(synID(line("."),col("."),0),"name") . "> lo<" . synIDattr(synIDtrans(synID(line("."),col("."),1)),"name") . ">" . " FG:" . synIDattr(synIDtrans(synID(line("."),col("."),1)),"fg#") -" Source current file Cmd-% (good for vim development) -map :so % - " ,hp = html preview map ,hp :!open -a Safari % From 32c099214fb586d674a47f2c3f5f23b59532e83a Mon Sep 17 00:00:00 2001 From: Alex Frost Date: Thu, 17 Jul 2014 08:11:56 +0100 Subject: [PATCH 2/4] add linux font install --- Rakefile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Rakefile b/Rakefile index 66b0d2f..457a4f9 100644 --- a/Rakefile +++ b/Rakefile @@ -27,7 +27,7 @@ task :install => [:submodule_init, :submodules] do Rake::Task["install_prezto"].execute - install_fonts if RUBY_PLATFORM.downcase.include?("darwin") + install_fonts install_term_theme if RUBY_PLATFORM.downcase.include?("darwin") @@ -181,7 +181,8 @@ def install_fonts puts "======================================================" puts "Installing patched fonts for Powerline/Lightline." puts "======================================================" - run %{ cp -f $HOME/.yadr/fonts/* $HOME/Library/Fonts } + run %{ cp -f $HOME/.yadr/fonts/* $HOME/Library/Fonts } if RUBY_PLATFORM.downcase.include?("darwin") + run %{ mkdir -p ~/.fonts && cp ~/.yadr/fonts/* "$_" && fc-cache -vf ~/.fonts } if RUBY_PLATFORM.downcase.include?("linux") puts end From 9260dc8b7803c2c4e4c20e93aef559e3ef00e50f Mon Sep 17 00:00:00 2001 From: Nikolai B Date: Thu, 17 Jul 2014 14:37:45 +0100 Subject: [PATCH 3/4] use alt for more mappings --- vim/settings/yadr-keymap-linux.vim | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/vim/settings/yadr-keymap-linux.vim b/vim/settings/yadr-keymap-linux.vim index fdc6008..1804203 100644 --- a/vim/settings/yadr-keymap-linux.vim +++ b/vim/settings/yadr-keymap-linux.vim @@ -21,12 +21,12 @@ imap - " Change inside various enclosures with Ctrl-" and Ctrl-' " The f makes it find the enclosure so you don't have " to be standing inside it -nnoremap f'ci' -nnoremap f"ci" -nnoremap f(ci( -nnoremap f)ci) -nnoremap f[ci[ -nnoremap f]ci] +nnoremap f'ci' +nnoremap f"ci" +nnoremap f(ci( +nnoremap f)ci) +nnoremap f[ci[ +nnoremap f]ci] " ==== NERD tree " Ctrl-Shift-N for nerd tree From 9d30fc4041f205858b5cea1bef52670da5a877cb Mon Sep 17 00:00:00 2001 From: Nikolai B Date: Mon, 29 Sep 2014 21:09:30 +0100 Subject: [PATCH 4/4] make more mappings use Alt + readme --- README.md | 14 ++++----- vim/settings/yadr-keymap-linux.vim | 48 +++++++++++++++--------------- 2 files changed, 31 insertions(+), 31 deletions(-) diff --git a/README.md b/README.md index 80bba62..9977f8d 100644 --- a/README.md +++ b/README.md @@ -163,7 +163,7 @@ of plugins above to learn more. * `,z` - go to previous buffer (:bp) * `,x` - go to next buffer (:bn) - * `Cmd-j` and `Cmd-k` to move up and down roughly by functions + * `Cmd-j` and `Cmd-k` to move up and down roughly by functions (`Alt` in Linux) * `Ctrl-o` - Old cursor position - this is a standard mapping but very useful, so included here * `Ctrl-i` - opposite of Ctrl-O (again, this is standard) @@ -193,7 +193,7 @@ of plugins above to learn more. * `,b` - CtrlP buffer selector - great for jumping to a file you already have open * `Cmd-Shift-M` - jump to method - CtrlP tag search within current buffer * `,jm` jump to models. Other `,j` mappings: `,jc` for controllers, `,jh` for helpers, etc. If you think of a concept and a letter, we've got you covered. - * `Cmd-Shift-N` - NERDTree toggle + * `Cmd-Shift-N` - NERDTree toggle (`Alt` in Linux) * `Ctrl-\` - Show current file in NERDTree * `Cmd-Shift-P` - Clear CtrlP cache @@ -201,13 +201,13 @@ of plugins above to learn more. * Cmd-Space to autocomplete. Tab for snipmate snippets. * `,#` `,"` `,'` `,]` `,)` `,}` to surround a word in these common wrappers. the # does #{ruby interpolation}. works in visual mode (thanks @cj). Normally these are done with something like `ysw#` - * `Cmd-'`, `Cmd-"`, `Cmd-]`, `Cmd-)`, etc to change content inside those surrounding marks. You don't have to be inside them. + * `Cmd-'`, `Cmd-"`, `Cmd-]`, `Cmd-)`, etc to change content inside those surrounding marks. You don't have to be inside them (`Alt` in Linux) * `,.` to go to last edit location (same as `'.`) because the apostrophe is hard on the pinky * `,ci` to change inside any set of quotes/brackets/etc #### Tabs, Windows, Splits - * Use `Cmd-1` thru `Cmd-9` to switch to a specific tab number (like iTerm and Chrome) - and tabs have been set up to show numbers + * Use `Cmd-1` thru `Cmd-9` to switch to a specific tab number (like iTerm and Chrome) - and tabs have been set up to show numbers (`Alt` in Linux) * `Ctrl-h,l,j,k` - to move left, right, down, up between splits * `Q` - Intelligent Window Killer. Close window `wincmd c` if there are multiple windows to same buffer, or kill the buffer `bwipeout` if this is the last window into it. * `vv` - vertical split (`Ctrl-w,v`) @@ -233,13 +233,13 @@ of plugins above to learn more. * `,he` - Html Escape * `,hu` - Html Unescape * `,hp` - Html Preview (open in Safari) - * `Cmd-Shift-A` - align things (type a character/expression to align by, works in visual mode or by itself) + * `Cmd-Shift-A` - align things (type a character/expression to align by, works in visual mode or by itself) (`Alt` in Linux) * `:ColorToggle` - turn on #abc123 color highlighting (useful for css) * `:Gitv` - Git log browsers * `,hi` - show current Highlight group. if you don't like the color of something, use this, then use `hi! link [groupname] [anothergroupname]` in your vimrc.after to remap the color. You can see available colors using `:hi` * `,gt` - Go Tidy - tidy up your html code (works on a visual selection) - * `:Wrap` - wrap long lines (e.g. when editing markdown files). - * `Cmd-/` - toggle comments (usually gcc from tComment) + * `:Wrap` - wrap long lines (e.g. when editing markdown files) + * `Cmd-/` - toggle comments (usually gcc from tComment) (`Alt` in Linux) * `gcp` (comment a paragraph) #### Rails & Ruby diff --git a/vim/settings/yadr-keymap-linux.vim b/vim/settings/yadr-keymap-linux.vim index 1804203..dd6ff86 100644 --- a/vim/settings/yadr-keymap-linux.vim +++ b/vim/settings/yadr-keymap-linux.vim @@ -11,14 +11,14 @@ " a lot of hand movement. Vim to the rescue " " Now using the middle finger of either hand you can type -" underscores with Ctrl-k or Ctrl-d, and add Shift +" underscores with Alt-k or Alt-d, and add Shift " to type dashes -imap _ -imap _ -imap - -imap - +imap _ +imap _ +imap - +imap - -" Change inside various enclosures with Ctrl-" and Ctrl-' +" Change inside various enclosures with Alt-" and Alt-' " The f makes it find the enclosure so you don't have " to be standing inside it nnoremap f'ci' @@ -29,23 +29,23 @@ nnoremap f[ci[ nnoremap f]ci] " ==== NERD tree -" Ctrl-Shift-N for nerd tree -nmap :NERDTreeToggle +" Alt-Shift-N for nerd tree +nmap :NERDTreeToggle -" move up/down quickly by using Ctrl-j, Ctrl-k +" move up/down quickly by using Alt-j, Alt-k " which will move us around by functions -nnoremap } -nnoremap { -autocmd FileType ruby map ]m -autocmd FileType ruby map [m -autocmd FileType rspec map } -autocmd FileType rspec map { -autocmd FileType javascript map } -autocmd FileType javascript map { +nnoremap } +nnoremap { +autocmd FileType ruby map ]m +autocmd FileType ruby map [m +autocmd FileType rspec map } +autocmd FileType rspec map { +autocmd FileType javascript map } +autocmd FileType javascript map { " Command-/ to toggle comments -map :TComment -imap :TCommenti +map :TComment +imap :TCommenti " Use Alt- numbers to pick the tab you want map :tabn 1 @@ -73,9 +73,9 @@ nnoremap > " ============================ " Tabularize - alignment " ============================ -" Hit Ctrl-Shift-A then type a character you want to align by -nmap :Tabularize / -vmap :Tabularize / +" Hit Alt-Shift-A then type a character you want to align by +nmap :Tabularize / +vmap :Tabularize / -" Source current file Ctrl-% (good for vim development) -map :so % +" Source current file Alt-% (good for vim development) +map :so %