diff options
Diffstat (limited to 'doc/neovimb.1')
-rw-r--r-- | doc/neovimb.1 | 1604 |
1 files changed, 1604 insertions, 0 deletions
diff --git a/doc/neovimb.1 b/doc/neovimb.1 new file mode 100644 index 0000000..f62f102 --- /dev/null +++ b/doc/neovimb.1 @@ -0,0 +1,1604 @@ +.\" vim: ft=groff +.TH neovimb 1 "DATE" "neovimb/VERSION" "neovimb Manual" +.SH NAME +neovimb - Vim Browser - A modal web browser based on WebKit, inspired by vimb. +. +. +.SH SYNOPSIS +.B neovimb +.OP OPTIONS +.RI [ URI "|" file "|" - ] +. +. +.SH DESCRIPTION +neovimb is a WebKit based web browser that behaves like the Vimperator +plugin for Firefox and has usage paradigms from the great editor, Vim. +The goal of neovimb is to build a completely keyboard-driven, efficient +and pleasurable browsing-experience. +. +. +.SH OPTIONS +If no \fIURI\fP or \fIfile\fP is given, neovimb will open the configured +home-page. +If \fIURI\fP is '-', neovimb reads the HTML to display from stdin. +.P +Mandatory arguments to long options are mandatory for short options too. +.TP +.BI "\-C, \-\-cmd " "CMD" +Run \fICMD\fP as ex command line right before the first page is loaded. +If the flag is used more than one time, the commands are called in order they +are given. +You could also pass several ex commands in one \fICMD\fP, +if they are separated by "|". +.sp +.EX +neovimb --cmd "set dark-mode=on|set header=Referer,DNT=1" +.EE +.TP +.BI "\-c, \-\-config " "FILE" +Use custom configuration given as \fIFILE\fP. +This will also be applied on new spawned instances. +.TP +.BI "\-e, \-\-embed " "WINID" +.I WINID +of an XEmbed-aware application, that neovimb will use as its parent. +.TP +.B "\-i, \-\-incognito" +Start an instance with user data read-only (see \fIFILES\fP section). +.TP +.B "\-h, \-\-help" +Show help options. +.TP +.BI "\-p, \-\-profile " "PROFILE-NAME" +Create or open specified configuration profile. +Configuration data for the profile is stored in a directory named +\fIPROFILE-NAME\fP under default directory for configuration data. +.TP +.B "\-v, \-\-version" +Print build and version information and then quit. +.TP +.B "\-\-no-maximize" +Do no attempt to maximize window. +.TP +.B "\-\-bug-info" +Prints information about used libraries for bug reports and then quit. +. +. +.SH MODES +neovimb is modal and has the following main modes: +.IP "Normal Mode" +The default mode. +Pressing Escape always enter normal mode. +.IP "Input Mode" +Used for editing text elements in a webpage. +.IP "Command Mode" +Execute `ex` commands from the builtin inputbox (commandline). +.IP "Pass-Through Mode" +In Pass-Through mode only the `<Esc>` and `<C-[>` keybindings are interpreted +by neovimb, all other keystrokes are given to the webview to handle them. +This allows the use of a website's configured keybindings, that might otherwise +be swallowed by neovimb. +. +. +.SH NORMAL MODE COMMANDS +Some of the Normal Model Commands can have a numeric count to multiply the +effect of the command. +If a command supports the count this is shown as [\fBN\fP]. +. +.SS General +.TP +.B : +Start Command Mode and print `:' to the input box. +.TP +.B gi +Set cursor to the first editable element in the page and switch to Input +Mode. +.TP +.B i +Set cursor to the last focused element in the page and switch to Input Mode. +If no element was focused before the first element is focused like with `gi'. +.TP +.B CTRL\-Z +Switch neovimb into Pass-Through Mode. +.TP +.B gf +Open the configured editor (`editor-command') with the current page's content. +.TP +.B gF +Open the Web Inspector for the current page. +.TP +.B CTRL\-V +Pass the next key press directly to GTK. +.TP +.B CTRL\-Q +Quit the browser if there are no running downloads. +. +.SS Navigation +.TP +.B o +Start Command Mode and print `:open ' to the input box. +.TP +.B O +Start Command Mode and print `:open URI' to the input box. +.TP +.B t +Start Command Mode and print `:tabopen ' to the input box. +.TP +.B T +Start Command Mode and print `:tabopen URI' to the input box. +.TP +.B gh +Open the configured home-page. +.TP +.B gH +Open the configured home-page in a new window. +.TP +.B u +Open the last closed page. +.TP +.B U +Open the last closed page in a new window. +.TP +.B CTRL\-P +Open the oldest entry from the read it later queue in the current browser +window. +.TP +.BI [ \(dqx ]p +Open the URI out of the register \fIx\fP or, if not given, from the clipboard. +.TP +.BI [ \(dqx ]P +Open the URI out of the register \fIx\fP or, if not given, from the clipboard in a +new window. +.TP +.BI [ N ]CTRL\-O +Go back \fIN\fP steps in the browser history. +.TP +.BI [ N ]CTRL\-I +Go forward \fIN\fP steps in the browser history. +.TP +.BI [ N ]gu +Go to the \fIN\fPth descendent directory of the current opened URI. +.TP +.B gU +Go to the domain of the current opened page. +.TP +.B r +Reload the website. +.TP +.B R +Reload the website without using caches. +.TP +.B CTRL\-C +Stop loading the current page. +.TP +.B CTRL-LeftMouse, MiddleMouse +Opens the clicket link into new window. +.TP +.B Shift-LeftMouse +Push the link url under the cursor to the end of the Read It Later queue like +the `:qpush' command. +. +.SS Motion +.TP +.BI [ N ]CTRL\-F +Scroll \fIN\fP pages down. +.TP +.BI [ N ]CTRL\-B +Scroll \fIN\fP pages up. +.TP +.BI [ N ]CTRL\-D +Scroll \fIN\fP half pages down. +.TP +.BI [ N ]CTRL\-U +Scroll \fIN\fP half pages up. +.TP +.BI [ N ]gg +Scroll to the top of the current page. +Or if \fIN\fP is given to \fIN\fP% of the page. +.TP +.BI [ N ]G +Scroll to the bottom of the current page. +Or if \fIN\fP is given to \fIN\fP% of the page. +.TP +.B 0, ^ +Scroll to the absolute left of the document. +Unlike in Vim, 0 and ^ work exactly the same way. +.TP +.B $ +Scroll to the absolute right of the document. +.TP +.BI [ N ]h +Scroll \fIN\fP steps to the left of page. +.TP +.BI [ N ]l +Scroll \fIN\fP steps to the right of page. +.TP +.BI [ N ]j +Scroll page \fIN\fP steps down. +.TP +.BI [ N ]k +Scroll page \fIN\fP steps up. +.TP +.BI m{ a-z } +Set a page mark {\fIa-z\fP} at the current position on the page. +Such set marks are only available on the current page; +if the page is left, all marks will be removed. +.TP +.BI '{ a-z } +Jump to the mark {\fIa-z\fP} on the current page. +.TP +.B '' +Jumps to the position before the latest jump, or where the last "m'" command +was given. +. +.SS Hinting +Hinting in neovimb is how you accomplish the tasks that you would do with the +mouse in common mouse-driven browsers: open a URI, yank a URI, save a page and +so on. When hinting is started, the relevant elements on the page will +be marked by labels generated from configured `hint-keys'. +Hints can be selected by using <Tab>, <C-I> or <C-Tab>, <C-O>, +by typing the chars of the label, or filtering the elements by some text +that is part of the hinted element (like URI, link text, button label) +or any combination of these methods. +If <enter> is pressed, the current active hint will be fired. +If only one possible hint remains, this will be fired automatically. +.P +.BR Syntax: " ;{mode}{hint}" +.P +Start Hints mode. +Different elements depending on \fImode\fP are highlighted and `numbered'. +Elements can be selected either by typing their label, or by typing part +of their text (\fIhint\fP) to narrow down the result. +When an element has been selected, it is automatically clicked +or used (depending on \fImode\fP) and hint mode ends. +.P +The filtering of hints by text splits the query at ' ' and use the single parts +as separate queries to filter the hints. +This is useful for hints that have a lot of filterable chars in common +and many chars are required to make a distinct selection. +For example ';over tw' will easily select the second hint out of +{'very long link text one', 'very long link text two'}. +.P +The following keys have special meanings in Hints modes: +.PD 0 +.TP +.B <CR> +Selects the first highlighted element, or the current focused. +.TP +.B <Tab> +Moves the focus to the next hint element. +.TP +.B <S-Tab> +Moves the focus to the previous hint element. +.TP +.B <Esc>, CTRL\-C, CTRL\-[ +Exits Hints mode without selecting an element. +.PD +.TP +.B Hint modes: +.RS +.PD 0 +.TP +.B f +Is an alias for the \fB;o\fP hint mode. +.TP +.B F +Is an alias for the \fB;t\fP hint mode. +.TP +.B ;o +Open hint's location in the current window. +.TP +.B ;t +Open hint's location in a new window. +.TP +.B ;s +Saves the hint's destination under the configured `download-path'. +.TP +.B ;O +Generate an `:open' prompt with hint's URI. +.TP +.B ;T +Generate an `:tabopen' prompt with hint's URI. +.TP +.B ;e +Open the configured editor (`editor-command') with the hinted form element's +content. +If the file in editor is saved and the editor is closed, the file +content will be put back in the form field. +.TP +.B ;i +Open hinted image in the current window. +.TP +.B ;I +Open hinted image in a new window. +.TP +.B ;k +Kill (remove) hinted element from the page. +.TP +.B ;p +Push the hint's URI to the end of the Read It Later queue like the `:qpush' +command. +This is only available if neovimb was compiled with the QUEUE feature. +.TP +.B ;P +Push the hint's URI to the beginning of the Read It Later queue like the +`:qunshift' command. +This is only available if neovimb was compiled with the QUEUE feature. +.TP +.B ;x +Hints like ;o, but instead of opening the hinted URI, the +`x-hint-command' is run in neovimb. +.TP +.BI [ \(dqx ];y +Yank hint's destination location into primary and secondary clipboard and into +the register \fIx\fP. +.TP +.BI [ \(dqx ];Y +Yank hint's text description or form text into primary and secondary clipboard +and into the register \fIx\fP. +.PD +.RE +.TP +.BR Syntax: " g;{mode}{hint}" +Start an extended hints mode and stay there until <Esc> is pressed. +Like normal hinting, except that after a hint is selected, hints +remain visible so that another one can be selected with the same action +as the first. +Note that the extended hint mode can only be combined with the following +hint modes +.IR "I o p P s t y Y" . +.PD +.TP +.B Motion +.RS +Motions commands are like those for normal mode except that CTRL is used as +modifier. +But they can not be used together with a count. +.P +.PD 0 +.TP +.B CTRL-F +Scroll one page down. +.TP +.B CTRL-B +Scroll one page up. +.TP +.B CTRL-D +Scroll half page down. +.TP +.B CTRL-U +Scroll half page up. +.TP +.B CTRL-J +Scroll one step down. +.TP +.B CTRL-K +Scroll one step up. +.PD +.RE +. +.SS Searching +.TP +.BI / QUERY ", ?" QUERY +Start searching for \fIQUERY\fP in the current page. +\fI/\fP start search forward, \fI?\fP in backward direction. +.TP +.BR * , " #" +Start searching for the current selected text, or if no text is selected for +the content of the primary or secondary clipboard. +\fI*\fP start the search in forward direction and \fI#\fP in backward +direction. +.sp +Note that these commands will yank the text selection into the clipboard and +may remove other content from there! +.TP +.BI [ N ]n +Search for \fIN\fPnth next search result depending on current search +direction. +.TP +.BI [ N ]N +Search for \fIN\fPnth previous search result depending on current search +.TP +.B <CR> +Perform a click on element containing the current highlighted search result. +direction. +. +.SS Zooming +.TP +.BI [ N ]zi +Zoom-In the text of the page by \fIN\fP steps. +.TP +.BI [ N ]zo +Zoom-Out the text of the page by \fIN\fP steps. +.TP +.BI [ N ]zI +Full-Content Zoom-In the page by \fIN\fP steps. +.TP +.BI [ N ]zO +Full-Content Zoom-Out the page by \fIN\fP steps. +.TP +.B zz +Reset Zoom. +. +.SS Yank +.TP +.BI [ \(dqx ]y +Yank the URI or current page into register \fIx\fP and clipboard. +.TP +.BI [ \(dqx ]Y +Yank the current selection into register x and clipboard. +. +. +.SH COMMAND MODE +Commands that are listed below are ex-commands like in Vim, that are typed +into the inputbox (the command line of neovimb). +The commands may vary in their syntax or in the parts they allow, +but in general they follow a simple syntax. +.P +.BR Syntax: " :[:| ][N]cmd[name][!][ lhs][ rhs]" +.sp +Where \fIlhs\fP (left hand side) must not contain any unescaped space. +The syntax of the rhs (right hand side) if this is available depends on the +command. +At the moment the count parts [N] of commands is parsed, but currently there is +no command that uses the count. +.sp +To avoid this, the commands can be prefixed by one or more additional `:' or +whitespace. +.P +Multiple commands, separated by a `|' can be given in a single command line +and will be executed consecutively. +The pipe can be included as an argument to a command by escaping it with a +backslash. +.br +Following commands process the entire command-line string literally. +These commands will include any `|' as part of their argument string and so +can not be followed by another command. +.P +.PD 0 +.IP - 2 +autocmd +.IP - +cmap, cnoremap, imap, inoremap, nmap, nnoremap +.IP - +eval +.IP - +normal +.IP - +open, tabopen +.IP - +shellcmd +.PD +. +.SS Command Line Editing +.TP +.B <Esc>, CTRL\-[, CTRL-C +Ignore all typed content and switch back to normal mode. +.TP +.B <CR> +Submit the entered `ex` command or search query to run it. +.TP +.B CTRL\-H +Deletes the char before the cursor. +.TP +.B CTRL\-W +Deletes the last word before the cursor. +.TP +.B CTRL\-U +Remove everything between cursor and prompt. +.TP +.B CTRL\-B +Moves the cursor directly behind the prompt `:'. +.TP +.B CTRL\-E +Moves the cursor after the prompt in inputbox. +.TP +.B CTRL\-V +Pass the next key press directly to GTK. +.TP +.B CTRL\-R {a-z"%:/;} +Insert the content of given register at cursor position. +See also section about `:reg[ister]' command. +. +.SS Command Line History +.TP +.B <Tab> +Start completion of the content in the inputbox in forward direction. +.TP +.B <S-Tab> +Start completion of the content in the inputbox in backward direction. +.TP +.B <Up> +Step backward in the command history. +.TP +.B <Down> +Step forward in the command history. +Yank the current selection into register \fIx\fP and clipboard. +. +.SS Open +.TP +.BI ":o[pen] [" URI ] +Open the give \fIURI\fP in the current window. +If \fIURI\fP is empty, the configured 'home-page' is opened. +.TP +.BI ":t[abopen] [" URI ] +Open the give \fIURI\fP in a new window. +If \fIURI\fP is empty, the configured 'home-page' is opened. +. +.SS Key Mapping +Key mappings allow users to alter the actions of key presses. +Each key mapping is associated with a mode and only has effect +when the mode is active. +The following commands allow the user to substitute one sequence +of key presses by another. +.P +.BR Syntax: " :{m}map {lhs} {rhs}" +.P +Note that the \fIlhs\fP ends with the first found space. +If you want to use space also in the {lhs} you have to escape this +with a single `\\', as shown in the examples. +.sp +The \fIrhs\fP starts with the first non-space char. If you want a \fIrhs\fP +that starts with a space, you have to use "<Space>". +.P +Standard key mapping commands are provided for these modes \fIm\fP: +.PD 0 +.TP +.B n +Normal mode: when browsing normally. +.TP +.B i +Insert mode: when interacting with text fields on a website. +.TP +.B c +Command Line mode: when typing into neovimb's command line. +.PD +.P +Most keys in key sequences are represented simply by the character that you +see on the screen when you type them. +However, as a number of these characters have special meanings, and a +number of keys have no visual representation, a special notation is required. +.P +As special key names have the format \fI<...>\fP. +The following special keys can be used: <Left>, <Up>, <Right>, <Down> +for the cursor keys, <Tab>, <Esc>, <CR>, <Space>, <BS>, <F1>-<F12> and <C-A>-<C-Z>. +.TP +.PD 0 +.BI ":nm[ap] {" lhs "} {" rhs } +.TP +.BI ":im[ap] {" lhs "} {" rhs } +.TP +.BI ":cm[ap] {" lhs "} {" rhs } +Map the key sequence \fIlhs\fP to \fIrhs\fP for the modes where the map +command applies. +The result, including \fIrhs\fP, is then further scanned for mappings. +This allows for nested and recursive use of mappings. +.RS +.sp +.IP ":cmap <C-G>h /home/user/downloads/" +Adds a keybind to insert a file path into the input box. +This could be useful for the `:save' command +that could be used as ":save ^Gh". +.IP ":nmap <F1> :set scripts=on<CR>:open !glib<Tab><CR>" +This will enable scripts and lookup the first bookmarked URI with the tag +`glib' and open it immediately if F1 key is pressed. +.IP ":nmap \e \e 50G" +Example which maps two spaces to go to 50% of the page. +.RE +.TP +.BI ":nn[oremap] {" lhs "} {" rhs } +.TP +.BI ":ino[remap] {" lhs "} {" rhs } +.TP +.BI ":cno[remap] {" lhs "} {" rhs } +Map the key sequence \fIlhs\fP to \fIrhs\fP for the mode where the map command +applies. +Disallow mapping of \fIrhs\fP, to avoid nested and recursive mappings. +Often used to redefine a command. +.TP +.BI ":nu[nmap] {" lhs } +.TP +.BI ":iu[nmap] {" lhs } +.TP +.BI ":cu[nmap] {" lhs } +Remove the mapping of \fIlhs\fP for the applicable mode. +.PD +. +.SS Bookmarks +.TP +.BI ":bma [" tags ] +Save the current opened URI with \fItags\fP to the bookmark file. +.TP +.BI ":bmr [" URI ] +Removes all bookmarks for given \fIURI\fP or, if not given, the current opened +page. +. +.SS Handlers +Handlers allow specifying external scripts to handle alternative URI methods. +.TP +.BI ":handler-add " "handler" "=" "cmd" +Adds a handler to direct \fIhandler\fP links to the external \fIcmd\fP. +The \fIcmd\fP can contain one placeholder `%s` that will be filled by the +full URI given when the command is called. +.RS +.P +.PD 0 +.IP ":handler-add mailto=urxvt -e mutt %s" +to start email client for mailto links. +.IP ":handler-add magnet=xdg-open %s" +to open magnet links with xdg-open. +.IP ":handler-add ftp=urxvt -e wget %s -P ~/ftp-downloads" +to handle ftp downloads via wget. +.PD +.RE +.TP +.BI ":handler-remove " "handler" +Remove the handler for the given URI \fIhandler\fP. +. +.SS Shortcuts +Shortcuts allow the opening of an URI built up from a named template with additional +parameters. +If a shortcut named 'dd' is defined, you can use it with `:open dd +list of parameters' to open the generated URI. +.P +Shortcuts are convenient to use with search engines where the URI is standardised +and a single parameter is user defined. +.TP +.BI ":shortcut-add " shortcut = URI +Adds a shortcut with the \fIshortcut\fP and \fIURI\fP template. +The \fIURI\fP can contain multiple placeholders $0-$9 that will be +filled by the parameters given when the shortcut is called. +The parameters given when the shortcut is called will be split +into as many parameters like the highest used placeholder. +.sp +To use spaces within the parameters, the parameters can be grouped by +surrounding them with single-or double quotes-as shown in example shortcut +`map'. +.RS +.P +.PD 0 +.IP ":shortcut-add dl=https://duckduckgo.com/lite/?q=$0" +to setup a search engine. +Can be called by `:open dl my search phrase'. +.IP ":shortcut-add gh=https://github.com/$0/$1" +to build URIs from given parameters. +Can be called `:open gh fanglingsu neovimb'. +.IP ":shortcut-add map=https://maps.google.com/maps?saddr=$0&daddr=$1" +to search for a route, all but the last parameter must be quoted if they +contain spaces like `:open map "city hall, London" railway station, London' +.PD +.RE +.TP +.BI ":shortcut-remove " shortcut +Remove the search engine to the given \fIshortcut\fP. +.TP +.BI ":shortcut-default " shortcut +Set the shortcut for given \fIshortcut\fP as the default, that is the shortcut +to be used if no shortcut is given and the string to open is not an URI. It +doesn't matter if the \fIshortcut\fP is already in use or not to be able to set +it. +. +.SS Settings +.TP +.BI ":se[t] " var = value +Set configuration values named by \fIvar\fP. +To set boolean variable you should use 'on', 'off' or 'true' and 'false'. +Colors are given as hexadecimal value like '#f57700'. Spaces or more equals +signs in \fIvalue\fP just work without quotes: for example, +":set sans-serif-font=Some Sans Font". +.TP +.BI ":se[t] " var += value +Add the \fIvalue\fP to a number option, or append the \fIvalue\fP to a string +option. +When the option is a comma separated list, a comma is added, unless +the value was empty. +.TP +.BI ":se[t] " var ^= value +Multiply the \fIvalue\fP to a number option, or prepend the \fIvalue\fP to a +string option. +When the option is a comma separated list, a comma is added, +unless the value was empty. +.TP +.BI ":se[t] " var -= value +Subtract the \fIvalue\fP from a number option, or remove the \fIvalue\fP from +a string option, if it is there. +When the option is a comma separated list, a +comma is deleted, unless the option becomes empty. +.TP +.BI ":se[t] " var ? +Show the current set value of variable. +.IR VAR . +.TP +.BI ":se[t] " var ! +Toggle the value of boolean variable \fIvar\fP and display the new set value. +. +.SS Queue +The queue allows the marking of URIs for later reading. +This list is shared between the single instances of neovimb. +.TP +.BI ":qpu[sh] [" URI ] +Push \fIURI\fP or, if not given, the current URI to the end of the queue. +.TP +.BI ":qun[shift] [" URI ] +Push \fIURI\fP or, if not given, the current URI to the beginning of the queue. +.TP +.B :qp[op] +Open the oldest queue entry in the current browser window and remove it from the +queue. +.TP +.B :qc[lear] +Removes all entries from queue. +. +.SS Automatic commands +An autocommand is a command that is executed automatically in response to some +event, such as a URI being opened. +Autocommands are very powerful. +Use them with care and they will help you avoid typing many commands. +.P +Autocommands are built with following properties. +.TP +.I group +When the [\fIgroup\fP] argument is not given, neovimb uses the current group as +defined with ':augroup', otherwise, neovimb uses the group defined with +[\fIgroup\fP]. +Groups are useful to remove multiple grouped autocommands. +.TP +.I event +You can specify a comma separated list of event names. +No white space can be used in this list. +.P +.RS +.PD 0 +Events: +.TP +.B LoadStarting +Fired before a new page is going to be opened. +No data has been sent or received yet, the load may still fail for transport issues. +.TP +.B LoadStarted +Fired if a new page is going to be opened. +No data has been received yet, the load may still fail for transport issues. +.TP +.B LoadCommitted +Fired if first data chunk has arrived, meaning that the necessary transport +requirements are established, and the load is being performed. +This is the right event to toggle content related setting +like 'scripts', 'plugins' and such things. +.TP +.B LoadFinished +Fires when everything that was required to display on the page has been loaded. +.TP +.B DownloadStarted +Fired right after a download is started. +.TP +.B DownloadFinished +Fired if a neovimb managed download is finished. +.TP +.B DownloadFailed +Fired if a neovimb managed download failed. +.PD +.RE +.TP +.I pat +Comma separated list of patterns, matches in order to check if a autocommand +applies to the URI associated to an event. +To use ',' within the single patterns this must be escaped as '\e,'. +.RS +.P +.PD 0 +Patterns: +.IP "\fB*\fP" +Matches any sequence of characters. +This includes also '/' in contrast to shell patterns. +.IP "\fB?\fP" +Matches any single character except of '/'. +.IP "\fB{one,two}\fP" +Matches 'one' or 'two'. +Any '{', ',' and '}' within this pattern must be escaped by a '\\'. +\&'*' and '?' have no special meaning within the curly braces. +.IP "\fB\e\fP" +Use backslash to escape the special meaning of '?*{},' in the pattern or +pattern list. +.PD +.RE +.TP +.I cmd +Any `ex` command neovimb understands. +The leading ':' is not required. +Multiple commands can be separated by '|'. +.TP +.BI ":au[tocmd] [" group "] {" event "} {" pat "} {" cmd "}" +Add \fIcmd\fP to the list of commands that neovimb will execute automatically on +\fIevent\fP for a URI matching \fIpat\fP autocmd-patterns. +neovimb always adds the \fIcmd\fP after existing autocommands, so that the +autocommands are executed in the order in which they were given. +.TP +.BI ":au[tocmd]! [" group "] {" event "} {" pat "} {" cmd "}" +Remove all autocommands associated with \fIevent\fP and which pattern match +\fIpat\fP, and add the command \fIcmd\fP. +Note that the pattern is not matches literally to find autocommands +to remove, like Vim does. +neovimb matches the autocommand pattern with \fIpat\fP. +If [\fIgroup\fP] is not given, deletes autocommands in current group, +as noted above. +.TP +.BI ":au[tocmd]! [" group "] {" event "} {" pat "}" +Remove all autocommands associated with \fIevent\fP and which pattern matches +\fIpat\fP in given group (current group by default). +.TP +.BI ":au[tocmd]! [" group "] * {" pat "}" +Remove all autocommands with patterns matching \fIpat\fP for all events +in given group (current group by default). +.TP +.BI ":au[tocmd]! [" group "] {" event "}" +Remove all autocommands for \fIevent\fP in given group (current group +by default). +.TP +.BI ":au[tocmd]! [" group "]" +Remove all autocommands in given group (current group by default). +.TP +.BI ":aug[roup] {" name "}" +Define the autocmd group \fIname\fP for the following ":autocmd" commands. +The name "end" selects the default group. +.TP +.BI ":aug[roup]! {" name "}" +Delete the autocmd group \fIname\fP. +.P +Example: +.EX +:aug github +: au LoadCommitted * set scripts=off|set cookie-accept=never +: au LoadCommitted http{s,}://github.com/* set scripts=on +:aug end +.EE +. +.SS Misc +.TP +.BI ":cl[eardata] [" dataTypes "] [" timespan "]" +Asynchronously clears the website data of the given list of \fIdataTypes\fP +modified in the past \fItimespan\fP. +Note that the \fIdataTypes\fP must not contain spaces. +If \fItimespan\fP is not given, all website data will be removed. +Note that this effects all running instances of neovimb. +.RS +.P +.PD 0 +The \fIdataTypes\fP is a comma separated list of following types. +.TP +.B memory-cache +Memory cache. +.TP +.B disk-cache +HTTP disk cache. +.TP +.B offline-cache +Offline web application cache. +.TP +.B session-storage +Session storage data. +.TP +.B local-storage +Local storage data. +.TP +.B indexeddb-databases +IndexedDB databases. +.TP +.B plugin-data +Plugin data. +.TP +.B cookies +Cookies. Note that the cookies are not cleared in case a \fItimespan\fP is +given. +.TP +.B hsts-cache +HTTP Strict Transport Security cache. +.TP +.B - +Can be used to clear all known data types in case a \fItimespan\fP is used. +.PD +.RE +.RS +.P +.PD 0 +The \fItimespan\fP is given as sequence of '[multiplier]\fIunit\fP' tupels +with following units. +.TP +.B y +year (365 days) +.TP +.B w +week (7 days) +.TP +.B d +day +.TP +.B h +hour +.TP +.B m +minute +.TP +.B s +second +.PD +.P +.I Example: +.PD 0 +.IP ":cleardata" +to clear all known website data types without any timespan restriction. +.IP ":cleardata - 5m" +to clear all known website data types modified in the last 5 minutes. +.IP ":cleardata local-storage,session-storage,cookies" +to completely clear the cookies, local- and session-storage without time +restrictions. +.IP ":cleardata disk-cache 2d4h" +to clear the disk cache that was modified in the past two days and four hours. +.PD +.RE +.TP +.BI ":sh[ellcmd]! " cmd +Like :sh[ellcmd] but asynchronous. +.sp +Example: +.EX +:sh! /bin/sh -c 'echo "`date` $neovimb_URI" >> myhistory.txt' +.EE +.TP +.TP +.BI ":sh[ellcmd] " cmd +Runs the given shell \fIcmd\fP syncron and print the output into inputbox. +The following patterns in \fIcmd\fP are expanded: '~username', '~/', '$VAR' +and '${VAR}'. +A '\e' before these patterns disables the expansion. +.P +.RS +.P +.PD 0 +The following environment variables are set for called shell commands. +.TP +.B neovimb_URI +This variable is set by neovimb everytime a new page is opened to the URI of the +page. +.TP +.B neovimb_SELECTION +This variable is set to the current selected text on the page. +.TP +.B neovimb_TITLE +Contains the title of the current opened page. +.TP +.B neovimb_PID +Contains the pid of the running neovimb instance. +.TP +.B neovimb_WIN_ID +Holds the X-Window id of the neovimb window. +.TP +.B neovimb_XID +Holds the X-Window id of the neovimb window or of the embedding window if neovimb is +compiled with XEMBED and started with the -e option. +.EE +.RE +.TP +.BI ":sh[ellcmd]! " cmd +Like :sh[ellcmd] but asynchronous. +.sp +Example: +.EX +:sh! /bin/sh -c 'echo "`date` $neovimb_URI" >> myhistory.txt' +.EE +.TP +.BI ":s[ave] [" path "]" +Download current opened page into configured download directory. +If \fIpath\fP is given, download under this file name or path. +\fIpath\fP is expanded and can therefore contain '~/', '${ENV}' +and '~user' pattern. +.TP +.BI ":so[urce] [" file "]" +Read ex commands from \fIfile\fP. +.TP +.B :q[uit] +Close the browser. +This will be refused if there are running downloads. +.TP +.B :q[uit]! +Close the browser independent from an running download. +.TP +.B :reg[ister] +Display the contents of all registers. +.RS +.P +.PD 0 +Registers: +.TP +.BR \(dqa " \(em " \(dqz +26 named registers "a to "z. +neovimb fills these registers only when you say so. +.TP +.B \(dq: +Last executed `ex` command. +.TP +.B \(dq" +Last yanked content. +.TP +.B \(dq% +Curent opened URI. +.TP +.B \(dq/ +Last search phrase. +.TP +.B \(dq; +Contains the last hinted URL. +.PD +.RE +.TP +.BI :e[val] " javascript" +Runs the given \fIjavascript\fP in the current page and display the evaluated +value. +.sp +Example: :eval document.cookie +.TP +.BI :e[val]! " javascript" +Like :eval, but there is nothing print to the input box. +.TP +.BI ":no[rmal] [" cmds ] +Execute normal mode commands \fIcmds\fP. +This makes it possible to execute normal mode commands typed on the input box. +.sp +\fIcmds\fP cannot start with a space. +Put a count of 1 (one) before it, "1 " is one space. +.sp +Example: :set scripts!|no! R +.TP +.BI ":no[rmal]! [" cmds ] +Like :normal, but no mapping is applied to \fIcmds\fP. +.TP +.B :ha[rdcopy] +Print current document. +Open a GUI dialog where you can select the printer, +number of copies, orientation, etc. +. +. +.SH INPUT MODE +.TP +.BR <Esc> , " CTRL\-[" +Switch back to normal mode. +.TP +.B CTRL\-O +Executes the next command as normal mode command and return to input mode. +.TP +.B CTRL\-T +Open configured editor with content of current form field. +.TP +.B CTRL\-V +Pass the next key press directly to WebKit. +.TP +.B CTRL\-Z +Enter the pass-through mode. +. +. +.SH COMPLETIONS +The completions are triggered by pressing `<Tab>` or `<S-Tab>` in the +activated inputbox. +Depending of the current inserted content different completions are started. +The completion takes additional typed chars to filter +the completion list that is shown. +.TP +.B commands +The completion for commands are started when at least `:` is shown in the +inputbox. +If initial chars are passed, the completion will lookup those +commands that begin with the given chars. +.TP +.B settings +The setting name completion is started if at least `:set ` is shown in +inputbox and does also match settings that begins with already typed setting +prefix. +.TP +.RS +.IP ":open foo bar<Tab>" +will complete only URIs that contain the words foo and bar. +.RE +.TP +.B bookmarks +The bookmark completion is started by `:open \fB!\fP`, `:tabopen \fB!\fP` or +`:bmr ` and does a prefix search for all given words in the bookmark tags. +.RS +.IP ":open \fB!\fPfoo ba" +will match all bookmarks that have tags starting with "foo" and "ba". +If the bookmark does not have any tags set, the URL is split on `.' and `/' +into tags. +.IP ":bmr tag" +will match all bookmarks that have tags starting with "tag". +.RE +.TP +.B bookmark tags +The bookmark tag completion allows the insertion of already used bookmarks for the +`:bma ` commands. +.TP +.B search +The search completion allows a filtered list of already done searches. +This completion starts by `/` or `?` in inputbox and performs a prefix +comparison for further typed chars. +. +. +.SH SETTINGS +All settings listed below can be set with the `:set' command. +See \fBSettings\fP under \fBCOMMAND MODE\fP for syntax. +.TP +.BR accelerated-2d-canvas (bool) +Enable or disable accelerated 2D canvas. +When accelerated 2D canvas is enabled, WebKit may render some 2D canvas +content using hardware accelerated drawing operations. +.TP +.BR allow-file-access-from-file-urls (bool) +Indicates whether file access is allowed from file URLs. +By default, when something is loaded using a file URI, cross origin requests +to other file resources are not allowed. +.TP +.BR allow-universal-access-from-file-urls (bool) +Indicates whether or not JavaScript running in the context of a file scheme +URL should be allowed to access content from any origin. +By default, when something is loaded in a using a file scheme URL, access to +the local file system and arbitrary local storage is not allowed. +.TP +.BR caret (bool) +Whether to enable accessibility enhanced keyboard navigation. +.TP +.B cookie-accept (string) +Cookie accept policy {`always', `never', `origin' (accept all non-third-party +cookies)}. +.TP +.B closed-max-items (int) +Maximum number of stored last closed URLs. +If closed-max-items is set to 0, closed URLs will not be stored. +.TP +.B completion-css (string) +CSS style applied to the inputbox completion list items. +.TP +.B completion-hover-css (string) +CSS style applied to the inputbox completion list item that is currently +hovered by the mouse. +.TP +.B completion-selected-css (string) +CSS style applied to the inputbox completion list item that is currently +selected. +.TP +.B cursiv-font (string) +The font family used as the default for content using cursive font. +.TP +.B dark-mode (bool) +Whether to enable dark mode. Websites can use the `prefers-color-scheme' media +query to adjust styles according to this option. +.TP +.B default-charset (string) +The default text charset used when interpreting content with an unspecified +charset. +.TP +.B default-font (string) +The font family to use as the default for content that does not specify a +font. +.TP +.B default-zoom (int) +Default Full-Content zoom level in percent. Default is 100. +.TP +.B dns-prefetching (bool) +Indicates if neovimb prefetches domain names. +.TP +.B download-command (string) +A command with placeholder '%s' that will be invoked to download a URI in +case 'download-use-external' is enabled. +.RS +.TP +The following additional environment variable are available: +.PD 0 +.TP +.B $neovimb_URI +The URI of the current opened page, normally the page where the download was +started from, also known as referer. +.TP +.B $neovimb_DOWNLOAD_PATH +Setting value of 'download-path' which would be used normally for downloads. +.PD +.P +.PD 0 +.IP ":set download-command=/bin/sh -c ""cd '$neovimb_DOWNLOAD_PATH' \ +&& curl -sLJOC - -e '$neovimb_URI' %s""" +.PD +.RE +.TP +.B download-path (string) +Path to the default download directory. +If no download directory is set, download will be written into current +directory. +The following pattern will be expanded if the download is +started '~/', '~user', '$VAR' and '${VAR}'. +.TP +.B download-use-external (bool) +Indicates if the external download tool set as 'download-command' should be +used to handle downloads. +If this is disabled neovimb will handle the download. +.TP +.B editor-command (string) +Command with placeholder '%s' called if form field is opened with $EDITOR to +spawn the editor-like `x-terminal-emulator -e vim %s'. +To use Gvim as the editor, it's necessary to call it with `-f' to run it in +the foreground. +.TP +.B font-size (int) +The default font size used to display text. +.TP +.B frame-flattening (bool) +Whether to enable the Frame Flattening. +With this setting each subframe is expanded to its contents, +which will flatten all the frames to become one scrollable page. +.TP +.B fullscreen (bool) +Show the current window full-screen. +.TP +.B hardware-acceleration-policy (string) +This setting decides how to enable and disable hardware acceleration. +.PD 0 +.RS +.TP +.B ondemand +enables the hardware acceleration when the web contents request it, disabling +it again when no longer needed. +.TP +.B always +enforce hardware acceleration to be enabled. +.TP +.B never +disables it completely. +Note that disabling hardware acceleration might cause some websites to not +render correctly or consume more CPU. +.RE +.PD +.TP +.B header (list) +Comma separated list of headers that replaces default header sent by WebKit or +new headers. +The format for the header list elements is `name[=[value]]'. +.sp +Note that these headers will replace already existing headers. +If there is no '=' after the header name, then the complete header +will be removed from the request, if the '=' is present means that +the header value is set to empty value. +.sp +Note that webkit reused already set headers in case of a reload of a page. +So if there are headers removed that where previously use to access a certain +page and the page is reloaded or opened via back/forward history the header +will still be sent. +To apply the new header setting properly it's required to request another page +or to open current page new by `O<Cr>`. +.sp +To use '=' within a header value the value must be quoted like shown in +Example for the Cookie header. +.RS +.P +.PD 0 +.IP ":set header=DNT=1,User-Agent,Cookie='name=value'" +Send the 'Do Not Track' header with each request and remove the User-Agent +Header completely from request. +.PD +.RE +.TP +.B hint-follow-last (bool) +If on, neovimb automatically follows the last remaining hint on the page. +If off hints are fired only if enter is pressed. +.TP +.B hint-keys-same-length (bool) +If on, all hint labels will have the same length, so no hints will be +ambiguous. +.TP +.B hint-timeout (int) +Timeout before automatically following a non-unique numerical hint. +To disable auto fire of hints, set this value to 0. +.TP +.B hint-keys (string) +The keys used to label and select hints. +With its default value, each hint has a unique label which can be typed +to select it, while all other characters are used to filter hints based +on their text. +With a value such as asdfg;lkjh, +each hint is `labeled' based on the characters of the home row. +.IP +If the hint-keys string starts with a '0' the keys are considered to follow +the rules of numeric labeling. So that the ifrst char of the label will never +start with the '0'. +.IP +Note that the hint matching by label built of hint-keys is case sensitive. +In this neovimb differs from some other browsers that show hint labels in upper +case, but match them lowercase. +.IP +To have upper case hint labels, it's possible to add following css to the +`style.css' file in neovimb's configuration directory. +.IP +"span[neovimbhint="label"] {text-transform: uppercase !important;}" +.TP +.B hint-match-element (bool) +If this is set to 'true' typed chars that are not part of the set 'hint-keys' +are used to filter hinted DOM elements by their text value. +If 'hint-keys' are set to chars instead of numbers it might be useful to +disable matching of the elements by 'hint-match-element=false'. +.TP +.B home-page (string) +Homepage that neovimb opens if started without a URI. +.TP +.B html5-database (bool) +Whether to enable HTML5 client-side SQL database support. +Client-side SQL database allows web pages to store structured data +and be able to use SQL to manipulate that data asynchronously. +.TP +.B html5-local-storage (bool) +Whether to enable HTML5 localStorage support. +localStorage provides simple synchronous storage access. +.TP +.B hyperlink-auditing (bool) +Enable or disable support for <a ping>. +.TP +.B images (bool) +Determines whether images should be automatically loaded or not. +.TP +.B incsearch (bool) +While typing a search command, show where the pattern typed so far matches. +.TP +.B input-autohide (bool) +If enabled the inputbox will be hidden whenever it contains no text. +.TP +.B input-css (string) +CSS style applied to the inputbox in normal state. +.TP +.B input-error-css (string) +CSS style applied to the inputbox in case of displayed error. +.TP +.B javascript-can-access-clipboard (bool) +Whether JavaScript can access the clipboard. +.TP +.B javascript-can-open-windows-automatically (bool) +Whether JavaScript can open popup windows automatically without user +interaction. +.TP +.B geolocation (string) +Controls website access to the geolocation API {`always', `never', `ask' (display a prompt each time)} +.TP +.B media-playback-allows-inline (bool) +Whether media playback is full-screen only or inline playback is allowed. +Setting it to false allows specifying that media playback should be always +fullscreen. +.TP +.B media-playback-requires-user-gesture (bool) +Whether a user gesture (such as clicking the play button) would be required to +start media playback or load media. +Setting it on requires a gesture by the +user to start playback, or to load the media. +.TP +.B media-stream (bool) +Enable or disable support for MediaSource on pages. +MediaSource is an experimental proposal which extends HTMLMediaElement +to allow JavaScript to generate media streams for playback. +.TP +.B mediasource (bool) +Enable or disable support for MediaSource on pages. +MediaSource is an experimental proposal which extends HTMLMediaElement +to allow JavaScript to generate media streams for playback. +.TP +.B minimum-font-size (int) +The minimum font size used to display text. +.TP +.B monospace-font (string) +The font family used as the default for content using monospace font. +.TP +.B monospace-font-size (int) +Default font size for the monospace font. +.TP +.B notification (string) +Controls website access to the notification API, that sends notifications via +dbus. {`always', `never', `ask' (display a prompt each time)} +.TP +.B offline-cache (bool) +Whether to enable HTML5 offline web application cache support. +Offline web application cache allows web applications to run even +when the user is not connected to the network. +.TP +.B print-backgrounds (bool) +Whether background images should be drawn during printing. +.TP +.B plugins (bool) +Determines whether or not plugins on the page are enabled. +.TP +.B prevent-newwindow (bool) +Whether to open links, that would normally open in a new window, in the +current window. +This option does not affect links fired by hinting. +.TP +.B sans-serif-font (string) +The font family used as the default for content using sans-serif font. +.TP +.B scripts (bool) +Determines whether or not JavaScript executes within a page. +.TP +.B scroll-step (int) +Number of pixel neovimb scrolls if 'j' or 'k' is used. +.TP +.B scroll-multiplier (int) +Multiplier to increase the scroll distance if window is scrolled by mouse +wheel. +.TP +.B serif-font (string) +The font family used as the default for content using serif font. +.TP +.B show-titlebar (bool) +Determines whether the titlebar is shown (on systems that provide window +decoration). +Defaults to true. +.TP +.B site-specific-quirks (bool) +Enables the site-specific compatibility workarounds. +.TP +.B smooth-scrolling (bool) +Enable or disable support for smooth scrolling. +.TP +.B spatial-navigation (bool) +Whether to enable the Spatial Navigation. +This feature consists in the ability to navigate between focusable +elements in a Web page, such as hyperlinks and form controls, by using +Left, Right, Up and Down arrow keys. +For example, if a user presses the Right key, heuristics determine whether +there is an element they might be trying to reach towards the right, and if +there are multiple elements, which element they probably want. +.TP +.B spell-checking (bool) +Enable or disable the spell checking feature. +.TP +.B spell-checking-languages (string) +Set comma separated list of spell checking languages to be used for spell +checking. +.br +The locale string typically is in the form lang_COUNTRY, where lang is an +ISO-639 language code, and COUNTRY is an ISO-3166 country code. For instance, +sv_FI for Swedish as written in Finland or pt_BR for Portuguese as written in +Brazil. +.TP +.B status-bar (bool) +Indicates if the status bar should be shown. +.TP +.B status-css (string) +CSS style applied to the status bar on none https pages. +.TP +.B status-ssl-css (string) +CSS style applied to the status bar on https pages with trusted certificate. +.TP +.B status-ssl-invalid-css (string) +CSS style applied to the status bar on https pages with untrusted certificate. +.TP +.B strict-ssl (bool) +If 'on', neovimb will not load a untrusted https site. +.TP +.B stylesheet (bool) +If 'on' the user defined styles-sheet is used. +.TP +.B tabs-to-links (bool) +Whether the Tab key cycles through elements on the page. +.sp +If true, pressing the Tab key will focus the next element in the web view. +Otherwise, the web view will interpret Tab key presses as normal key presses. +If the selected element is editable, the Tab key will cause the insertion +of a Tab character. +.TP +.B timeoutlen (int) +The time in milliseconds that is waited for a key code or mapped key sequence +to complete. +.TP +.B user-agent (string) +The user-agent string used by WebKit. +.TP +.B user-scripts (bool) +If 'on' the user scripts are injected into every page. +.TP +.B webaudio (bool) +Enable or disable support for WebAudio on pages. +WebAudio is an experimental proposal for allowing web pages +to generate Audio WAVE data from JavaScript. +.TP +.B webgl (bool) +Enable or disable support for WebGL on pages. +.TP +.B webinspector (bool) +Determines whether or not developer tools, such as the Web Inspector, are +enabled. +.TP +.B x-hint-command (string) +Command used if hint mode ;x is fired. +The command can be any neovimb command string. +Note that the command is run through the mapping mechanism of neovimb so +it might change the behaviour by adding or changing mappings. +.RS +.P +.PD 0 +.IP ":set x-hint-command=:sh! curl -e <C-R>% <C-R>;" +This fills the inputbox with the prefilled download command and replaces +`<C-R>%' with the current URI and `<C-R>;' with the URI of the hinted element. +.PD +.RE +.TP +.B xss-auditor (bool) +Whether to enable the XSS auditor. +This feature filters some kinds of reflective XSS attacks on vulnerable web +sites. +.PD +.RE +.TP +.B javascript-enable-markup (bool) +Whether JavaScript markup is enabled. +Disabling can help with some older systems (ppc, ppc64, etc.) that don't have complete JavaScript support to run webpages without crashing. +. +. +.SH FILES +.TP +.IR $XDG_CONFIG_HOME/neovimb[/PROFILE] +Directory for configuration data. +If executed with \fB-p \fIPROFILE\fR parameter, configuration is read from +this subdirectory. +.RS +.PD 0 +.TP +.I config +Configuration file to set WebKit setting, some GUI styles and keybindings. +.TP +.I scripts.js +This file can be used to run user scripts, that are injected into every page +that is opened. +.TP +.I style.css +File for userdefined CSS styles. +These file is used if the config variable `stylesheet' is enabled. +.PD +.RE +. +.TP +.IR $XDG_DATA_HOME/neovimb[/PROFILE] +Directory for runtime data. +If executed with \fB-p \fIPROFILE\fR parameter, data files are written from +this subdirectory. +. +.RS +.PD 0 +.I cookies.db +Sqlite cookie storage. +This file will not be touched if option \-\-incognito is set. +.TP +.I closed +Holds the URIs of last closed browser windows. +This file will not be touched if option \-\-incognito is set. +.TP +.TP +.I bookmark +This file holds the list of bookmarked URIs with tags. +.TP +.I command +box. +This file will not be touched if option \-\-incognito is set. +.TP +.I queue +Holds the read it later queue filled by `qpush'. +.TP +.I search +This file will not be touched if option \-\-incognito is set. +.PD +.RE +. +.SH ENVIRONMENT +.TP +.B http_proxy, HTTP_PROXY +If either environment variable is non-empty, the specified host and +optional port is used to tunnel requests. For example: +HTTP_PROXY=localhost:8118. +. +. +.SH "REPORTING BUGS" +Report bugs to the main project page on https://github.com/fanglingsu/neovimb/issues +.br +or on the mailing list https://lists.sourceforge.net/lists/listinfo/neovimb-users. +. +. +.SH AUTHOR +Daniel Carl |