
sVim is a Safari extension with shortcuts similar to Vim.
The functionality of sVim will mostly follow the Chrome extension cVim.
- Download the latest release
- Releases and release notes are all uploaded to Github on the releases page
- The extension will update via Safari Extension Updates
| Keyboard Command |
Description |
Mapping Name |
| Movement |
|
|
| "j" |
scroll down |
scrollDown |
| "k" |
scroll up |
scrollUp |
| "h" |
scroll left |
scrollLeft |
| "l" |
scroll right |
scrollRight |
| "d" |
scroll half-page down |
scrollPageDown |
| "e", "u" |
scroll half-page up |
scrollPageUp |
| "shift+d" |
scroll full-page down |
scrollFullPageDown |
| "shift+e" |
scroll full-page up |
scrollFullPageUp |
| "shift+g" |
scroll to bottom of the page |
scrollToBottom |
| "g g" |
scroll to top of the page |
scrollToTop |
| "0" |
scroll to the left of the page |
scrollToLeft |
| "$" |
scroll to the right of the page |
scrollToRight |
| "g i" |
go to the first input box |
goToInput |
| "g n" |
find a "next page" link and navigate to it |
gotoNextPage |
| "g p" |
find a "previous page" link and navigate to it |
gotoPrevPage |
| Miscellaneous |
|
|
| "r" |
reload the current tab |
reloadTab |
| "z i" |
zoom page in |
zoomPageIn |
| "z o" |
zoom page out |
zoomPageOut |
| "z 0" |
zoom page to original size |
zoomOrig |
| "g r" |
toggle Safari reader if possible |
toggleReader |
| "g v" |
show sVimrc page |
showsVimrc |
| "g ?" |
open help page in new tab |
help |
| Tab Navigation |
|
|
| "g t", "shift+k" |
navigate to the next tab |
nextTab |
| "g shift+t", "shift+j" |
navigate to the previous tab |
previousTab |
| "g 0" |
go to the first tab |
firstTab |
| "g $" |
go to the last tab |
lastTab |
| "g l" |
go to the last active tab that's still open |
lastActiveTab |
| "x" |
close the current tab |
quit |
| "g x shift+t" |
close the tab to the left of the current tab |
closeTabLeft |
| "g x t" |
close the tab to the right of the current tab |
closeTabRight |
| "g x 0" |
close all tabs to the left of the current tab |
closeTabsToLeft |
| "g x $" |
close all tabs to the right of the current tab |
closeTabsToRight |
| "shift+x" |
open the last closed tab |
lastClosedTab |
| "ctrl+shift+x" |
open the last closed tab in background |
lastClosedTabBackground |
| "t" |
open new tab |
newTab |
| "shift+h" |
go back in history |
goBack |
| "shift+l" |
go forward in history |
goForward |
| "shift+," |
move current tab left |
moveTabLeft |
| "shift+." |
move current tab right |
moveTabRight |
| "g u" |
navigate to parent directory |
parentDirectory |
| "g shift+u" |
navigate to top directory |
topDirectory |
| "g d" |
navigate to parent domain |
parentDomain |
| "g h" |
navigate to home page |
homePage |
| Window Navigation |
|
|
| "w" |
open new window |
newWindow |
| "g w" |
navigate to the next window |
nextWindow |
| "g shift+w" |
navigate to the previous window |
previousWindow |
| Modes |
|
|
| "escape", "ctrl+[" |
enter normal mode |
normalMode |
| "i" |
enter insert mode |
insertMode |
| Link Hints |
|
|
| "f" |
open link in current tab |
createHint |
| "shift+f" |
open link in new background tab |
createTabbedHint |
| "ctrl+shift+f" |
open link in new foreground tab |
createForegroundHint |
| Clipboard |
|
|
| "y y" |
copy current URL to clipboard |
yankDocumentUrl |
- The sVimrc page is where you can customize sVim settings and css.
- You can access the page by pressing
g v or via the extension settings in Safari.
- The sVimrc and sVimcss files can be synced via gist.
- The gist id is found at the end of the url when viewing the gist.
- Note it does not matter the name of your gist or the file, sVim will just grab the first file from the gist id supplied. I use sVim.rc and sVim.css.
- For simplicity, strings in sVimrc should be wrapped in
".
- Save the sVimrc page with
command+s.
- Goto or switch between sVimrc and sVimcss with
ctrl+w.
- set
- Used for boolean settings.
- Prepend
no to setting name to unset.
- Set smooth scroll with
set smoothscroll and unset with set nosmoothscroll.
- let
- Used to set non-boolean settings.
- These settings can be of type integer, string or array.
- Set new tab url like
let newtaburl = "http://google.com".
- Set scroll step like
let scrollstep = 100.
- Set black lists like
let blacklists = ["*://example.com/stuff/*", "*://mail.google.com/*"].
- map
- Used to set/overwrite shortcuts.
- sVim uses Mousetrap for shortcuts and keyboard commands should follow it's format.
- You can use leader with
<Leader> in the keyboard command.
- Set the down arrow key to scroll down with
map "down" scrollDown.
- Set the leader key + the J key to scroll down with
map "<Leader> j" scrollFullPageDown.
- unmap
- Used to remove a shortcut.
- Remove
j shortcut with unmap "j".
- unmapAll
- Used to remove all current shortcuts with
unmapAll.
- "
- Used to add comments to sVimrc.
- Comment by adding
" to the beginning of the line (inline not supported).
- Add comment like
" This is a comment.
| Setting Name |
Description |
Type |
Default |
| preventdefaultesc |
prevent escape from exiting full screen, if unset then only prevent when not in normal mode |
boolean |
true |
| smoothscroll |
use smooth scrolling |
boolean |
true |
| fullpagescrollpercent |
percent of the page to scroll by when using scrollFullPageUp and scrollFullPageDown |
integer |
85 |
| lastactivetablimit |
number of last active tabs to remember |
integer |
25 |
| lastclosedtablimit |
number of closed tabs to remember |
integer |
25 |
| scrollduration |
duration of smooth scrolling |
integer |
30 |
| scrollstep |
amount of pixels scrolled when using scrollUp and scrollDown |
integer |
60 |
| zoomstep |
percent to zoom when using zoomPageIn and zoomPageOut |
integer |
10 |
| hintcharacters |
characters to be used in link hint mode |
string |
"asdfgqwertzxcvb" |
| homeurl |
url to use as home page |
string |
"topsites://" |
| mapleader |
key |
string |
"" |
| newtaburl |
url to use as the default new tab url |
string |
"topsites://" |
| blacklists |
disable sVim on the sites matching one of the patterns |
array |
[] |
| nextpagetextpatterns |
a list of regex patterns used to find the "next page" link on the page |
array |
["Next"] |
| prevpagetextpatterns |
a list of regex patterns used to find the "prev page" link on the page |
array |
["Previous"] |
" Settings
set nosmoothscroll
let fullpagescrollpercent = 100
let lastactivetablimit = 50;
let lastclosedtablimit = 50;
let scrollduration = 25
let scrollstep = 65
let zoomstep = 15
let hintcharacters = "1234567890";
let homeurl = "http://google.com";
let mapleader = ","
let newtaburl = "http://google.com"
let blacklists = ["*://example.com/stuff/*", "*://mail.google.com/*"]
let nextpagetextpatterns = ["Next"]
let prevpagetextpatterns = ["Prev(ious)?"]
" Shortcuts
map "q" nextTab
map "shift+q" previousTab
map "<Leader> h" closeTabLeft
map "<Leader> l" closeTabRight
map "down" scrollDown
map "up" scrollUp
map "left" scrollLeft
map "right" scrollRight
map "space" scrollFullPageDown