211 lines
4.7 KiB
Plaintext
211 lines
4.7 KiB
Plaintext
|
" {{{ anrxc's vimperator configuration with Emacs bindings
|
||
|
"
|
||
|
" Bindings
|
||
|
" * http://sysphere.org/~anrxc/j/articles/vimperator/index.html
|
||
|
|
||
|
" Todo
|
||
|
" * C-n and C-p in "INSERT (menu)" mode
|
||
|
" * http://code.google.com/p/vimperator-labs/issues/detail?id=36
|
||
|
|
||
|
" License
|
||
|
" * http://creativecommons.org/publicdomain/zero/1.0
|
||
|
" }}}
|
||
|
|
||
|
|
||
|
" {{{ Options
|
||
|
"
|
||
|
" User styles as colorschemes in Vimperator 2 *BROKEN*
|
||
|
" colorscheme zenburn
|
||
|
|
||
|
" Window title
|
||
|
set titlestring=Firefox
|
||
|
|
||
|
" No toolbar and scrollbars by default
|
||
|
"set go=rb
|
||
|
|
||
|
" Editor, C-i invokes it in text fields
|
||
|
set editor=emacsclient
|
||
|
|
||
|
" Command line and search patterns history
|
||
|
set history=10000
|
||
|
|
||
|
" Show pattern matches as you type
|
||
|
"set incsearch
|
||
|
|
||
|
" Hilight previous search pattern matches
|
||
|
"set hlsearch
|
||
|
|
||
|
" Override ignorecase if pattern has uppercase chars
|
||
|
"set smartcase
|
||
|
|
||
|
" Show the tab bar only if more then one tab is open
|
||
|
set showtabline=never
|
||
|
|
||
|
" Focus content after a page has loaded *DISALED* - does not work with pentadactyl
|
||
|
"set focuscontent
|
||
|
|
||
|
" Show destination links in 1=status line, 2=command line
|
||
|
set showstatuslinks=command
|
||
|
|
||
|
" Show completions and use AwesomeBar (+search plugins)
|
||
|
set complete=sl
|
||
|
|
||
|
" *DISABLED* - does not work with pentadactyl
|
||
|
"set wildoptions=auto
|
||
|
|
||
|
" Ex commands output in a new tab by default (prefs, addons...)
|
||
|
set newtab=all
|
||
|
|
||
|
" Internal default search engine is ignored, plugins are used
|
||
|
"set ds=yubnub
|
||
|
" }}}
|
||
|
|
||
|
|
||
|
" {{{ Key bindings
|
||
|
" - Emacs GTK key-theme and FF already provide bindings for input fields
|
||
|
"
|
||
|
" M-x enters command mode
|
||
|
noremap <A-x> :
|
||
|
|
||
|
noremap <A-!> :!
|
||
|
|
||
|
" 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> 2k
|
||
|
noremap <C-n> 2j
|
||
|
|
||
|
" 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-q is stop)
|
||
|
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> :stop<CR>
|
||
|
|
||
|
" 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
|
||
|
|
||
|
" Open a link in a new tab with C-x t
|
||
|
" Open a link in the current tab with C-x l
|
||
|
noremap <C-x>t :t<SPACE>
|
||
|
noremap <C-x>l :o<SPACE>
|
||
|
|
||
|
" Open hints in new tab by default (switch roles of f and F)
|
||
|
"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
|
||
|
|
||
|
" 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, remap to bind with default keys
|
||
|
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>
|
||
|
|
||
|
" {{{ Javascript functions
|
||
|
"
|
||
|
" Show the Feed and Bookmark buttons on the statusbar
|
||
|
javascript <<EOF
|
||
|
(function(){
|
||
|
var statusPanel = document.createElement("statusbarpanel");
|
||
|
statusPanel.setAttribute("id", "buttons-panel-clone");
|
||
|
statusPanel.appendChild(document.getElementById("feed-button"));
|
||
|
statusPanel.appendChild(document.getElementById("star-button"));
|
||
|
statusPanel.firstChild.setAttribute("style", "padding: 0; max-height: 16px;");
|
||
|
document.getElementById("status-bar")
|
||
|
.insertBefore(statusPanel, document.getElementById("security-button"));
|
||
|
})();
|
||
|
EOF
|
||
|
" }}}
|