summaryrefslogtreecommitdiff
path: root/vimperatorrc
diff options
context:
space:
mode:
Diffstat (limited to 'vimperatorrc')
-rw-r--r--vimperatorrc243
1 files changed, 243 insertions, 0 deletions
diff --git a/vimperatorrc b/vimperatorrc
new file mode 100644
index 0000000..2b2a60c
--- /dev/null
+++ b/vimperatorrc
@@ -0,0 +1,243 @@
+" anrxc's vimperator init file with Emacs bindings
+
+" For a nice formatted list of keybindings check:
+" * http://sysphere.org/~anrxc/j/articles/vimperator/index.html
+
+" TODO
+" * C-n and C-p in "INSERT (menu)" mode
+" - see this feature request: http://vimperator.org/trac/ticket/235
+" * C-? bindings wanted for: i (caret mode) and v (visual mode)
+" * C-g is buggy in insert mode in Vimperator 2.0
+" * completion brings system and FF to a crawl anyway so I will not use v2.0
+" * C-g solved in Vimperator 2.1 and completion is fixed
+
+
+" User styles as colorschemes in Vimperator 2
+" * ~/.vimperator/colors/clearlooks.vimp
+colorscheme clearlooks
+
+
+" Options
+" - Most of the options already have good defaults
+"
+" Window title (Vimperator by default)
+set titlestring=Firefox
+
+" Editor, C-i invokes it in text fields (replaces "It's All Text")
+set editor=emacsclient
+
+" Command line and search patterns history
+set history=10000
+
+" Show the toolbar on startup (I keep all bars in one)
+"set go+=T
+
+" Show the tab bar only if more then one tab is open
+set showtabline=1
+
+" Show destination links in 1=status line, 2=command line
+set showstatuslinks=1
+
+" Show completions and use AwesomeBar (+search plugins)
+set complete=sl
+set wildoptions=auto
+
+" Ex commands output in a new tab by default (prefs, addons...)
+set newtab=all
+
+" Hilight previous search pattern matches
+set hlsearch
+
+" Default search engine is ignored, plugins are used, place yubnub in there and do:
+set ds=yubnub
+
+
+" Key bindings
+" - Emacs key theme for GTK and Firefox already provide bindings for input fields.
+"
+" M-x enters command mode
+noremap <A-x> :
+
+" Emacs navigation in command line and insert mode
+cmap <C-n> <Tab>
+cmap <C-p> <S-Tab>
+cmap <C-f> <Right>
+cmap <C-b> <Left>
+cmap <C-j> <CR>
+noremap <C-j> <CR>
+inoremap <C-j> <CR>
+inoremap <C-n> <Down>
+inoremap <C-p> <Up>
+inoremap <C-f> <Right>
+inoremap <C-b> <Left>
+
+" Use C-f and C-b for tab browsing
+noremap <C-f> <C-n>
+noremap <C-b> <C-p>
+
+" Use C-a and C-e to jump to first/last tab
+"noremap <C-a> g0
+"noremap <C-e> g$
+" Or use them to go to the absolute left/right of the document
+noremap <C-a> 0
+noremap <C-e> $
+
+" Use C-p and C-n for up/down
+noremap <C-p> k
+noremap <C-n> j
+
+" Use C-v and M-v for jump scrolling
+noremap <C-v> <C-d>
+noremap <A-v> <C-u>
+
+" Goto the top of the document with M-<
+noremap <A-<> gg
+
+" Goto the end of the document with M->
+noremap <A->> G
+
+" Use C-s and C-r for searching (n/N for next/prev as in less)
+noremap <C-s> /
+noremap <C-r> ?
+
+" Copy the current URL to the clipboard with M-w
+noremap <A-w> y
+" Copy selected text to the clipboard with C-w
+noremap <C-w> Y
+
+" Paste the current clipboard selection to a new buffer with C-y
+noremap <C-y> P
+
+" Use current URL as a start for a new location with C-x C-v
+noremap <C-x><C-v> O
+
+" C-g as cancel (C-c is stop)
+"cmap <C-g> <C-c>
+cmap <C-g> <Esc>
+imap <C-g> <Esc>
+noremap <C-g> <Esc>
+
+" Avoid Find dialog when canceling a started command, C-x C-g
+noremap <C-x><C-g> <Esc>
+" Avoid quit on C-q, and it's more suitable for Stop here
+noremap <C-q> <C-c>
+
+" Kill the buffer with C-x k
+noremap <C-x>k d
+
+" Undo close tab with C-_ (also with C-Shift-t, as C-t is new tab)
+noremap <C-_> u
+
+" Exit and save the session with C-x C-c
+noremap <C-x><C-c> ZZ
+
+" Buffer lists with C-x b and C-x C-b
+noremap <C-x>b b
+noremap <C-x><C-b> B
+
+" C-x l as :open
+" C-x t as :tabopen
+noremap <C-x>l :o<SPACE>
+noremap <C-x>t :t<SPACE>
+
+" Switch roles of f and F to have hints opened in new tabs by default
+"noremap f F
+"noremap F f
+
+" Switch hints to letter "j" for right hand usage
+noremap j f
+noremap J F
+" Extended hint mode with M-j
+" ; - focus link, a - save, y - copy link, O - :open query, T - for :tabopen ...
+noremap <A-j> ;
+
+" We can now also use F for Shift+b/f as back/forward
+noremap F L
+noremap B H
+
+" Back with Backspace as well
+map <BS> H
+
+" Default C-o/C-i for older/newer position on the history jump list
+"remap if needed
+
+" Use C-h i to start help
+noremap <C-h>i :help<CR>
+
+" Record a key sequence into a macro with C-x (
+noremap <C-x>( q
+
+" Play a macro with C-x e
+noremap <C-x>e @
+
+" Set a mark at the cursor with C-x r m
+noremap <C-x>rm m
+
+" Jump to the mark in the current buffer with C-x r b
+noremap <C-x>rb '
+
+" C-v was pass-next command, re-map it so we can bind to default keys too
+noremap <C-d> <C-v>
+
+" C-x C-f starts the "Open File" dialog (C-x C-s is Save)
+map <C-x><C-f> <C-d><C-o>
+
+
+" I also use these, with no connection to Emacs bindings
+"
+" M-Up/Dn toggles the toolbar (I keep all bars in one)
+map <A-Down> :set go+=T<CR>
+map <A-Up> :set go-=T<CR>
+
+" Sidebar selection with s, close a sidebar with S
+map s :sidebar<SPACE>
+map S :sbclose<CR>
+
+" Dialog selection with d
+map d :dialog<SPACE>
+
+" Bookmark this page with C-x a (dialog)
+map <C-x>a <C-d><C-d>
+
+" Bookmarks search and search by tag
+map <C-x>q :bmarks<SPACE>
+map <C-x>w :bmarks -tags=
+
+" View source with C-x g
+noremap <C-x>g gf
+" or in an external editor
+"noremap <C-x>g gF
+
+" Focus the address bar with C-l
+map <C-l> <C-d><C-l>
+
+" Focus last used input field with C-x i
+noremap <C-x>i gi
+
+" Open home directory with C-x f
+noremap <C-x>f ~
+
+" Go to home page with C-x h
+noremap <C-x>h gh
+
+" Go to parent directory with C-x u
+noremap <C-x>u gu
+
+" Go to the root of the website with C-x C-u
+noremap <C-x><C-u> gU
+
+
+" Javascript
+" - Some useful functions
+"
+" Show the feed-button in the statusbar
+javascript <<EOF
+(function(){
+ var feedPanel = document.createElement("statusbarpanel");
+ feedPanel.setAttribute("id", "feed-panel-clone");
+ feedPanel.appendChild(document.getElementById("feed-button"));
+ feedPanel.firstChild.setAttribute("style", "padding: 0; max-height: 16px;");
+ document.getElementById("status-bar")
+ .insertBefore(feedPanel, document.getElementById("security-button"));
+})();
+EOF