📄 vipcard.tex
字号:
\key{{\bf insert} at point}{i}\key{{\bf append} after cursor}{a}\key{{\bf insert} before first non-white}{I}\key{{\bf append} at end of line}{A}\key{{\bf open} line below}{o}\key{{\bf open} line above}{O}\key{{\bf open} line at point}{C-o}\section{Buffers and Windows}\key{move cursor to {\bf next} window}{C-n}\key{delete current window}{X 0}\key{delete other windows}{X 1}\key{split current window into two windows}{X 2}\key{show current buffer in two windows}{X 3}\key{{\bf switch} to a buffer in the current window}{s {\sl buffer}}\key{{\bf switch} to a buffer in another window}{S {\sl buffer}}\key{{\bf kill} a buffer}{K}\key{list existing {\bf buffers}}{X B}\section{Files}\metax{{\bf visit} file in the current window}{v {\sl file} {\rm or} :e {\sl file}}\key{{\bf visit} file in another window}{V {\sl file}}\key{{\bf save} buffer to the associated file}{X S}\key{{\bf write} buffer to a specified file}{X W}\key{{\bf insert} a specified file at point}{X I}\key{{\bf get} information on the current {\bf file}}{g {\rm or} :f}\key{run the {\bf directory} editor}{X d}\section{Viewing the Buffer}\key{scroll to next screen}{SPC {\rm or} C-f}\key{scroll to previous screen}{RET {\rm or} C-b}\key{scroll {\bf down} half screen}{C-d}\key{scroll {\bf up} half screen}{C-u}\key{scroll down one line}{C-e}\key{scroll up one line}{C-y}\key{put current line on the {\bf home} line}{z H {\rm or} z RET}\key{put current line on the {\bf middle} line}{z M {\rm or} z .}\key{put current line on the {\bf last} line}{z L {\rm or} z -}\section{Marking and Returning}\key{{\bf mark} point in register {\it x}}{m {\it x}}\key{set mark at buffer beginning}{m <}\key{set mark at buffer end}{m >}\key{set mark at point}{m .}\key{jump to mark}{m ,}\key{exchange point and mark}{` `}\key{... and skip to first non-white on line}{' '}\key{go to mark {\it x}}{` {\it x}}\key{... and skip to first non-white on line}{' {\it x}}\section{Macros}\key{start remembering keyboard macro}{X (}\key{finish remembering keyboard macro}{X )}\key{call last keyboard macro}{*}\key{execute macro stored in register {\it x}}{@ {\it x}}\section{Motion Commands}\key{go backward one character}{h}\key{go forward one character}{l}\key{next line keeping the column}{j}\key{previous line keeping the column}{k}\key{next line at first non-white}{+}\key{previous line at first non-white}{-}\key{beginning of line}{0}\key{first non-white on line}{^}\key{end of line}{\$}\key{go to {\it n}-th column on line}{{\it n} |}\key{go to {\it n}-th line}{{\it n} G}\key{go to last line}{G}\key{find matching parenthesis for \kbd{()}, \kbd{\{\}} and \kbd{[]}}{\%}\key{go to {\bf home} window line}{H}\key{go to {\bf middle} window line}{M}\key{go to {\bf last} window line}{L}\subsection{Words, Sentences, Paragraphs}\key{forward {\bf word}}{w {\rm or} W}\key{{\bf backward} word}{b {\rm or} B}\key{{\bf end} of word}{e {\rm or} E}In the case of capital letter commands, a word is delimited by anon-white character.\key{forward sentence}{)}\key{backward sentence}{(}\key{forward paragraph}{\}}\key{backward paragraph}{\{}\subsection{Find Characters on the Line}\key{{\bf find} {\it c} forward on line}{f {\it c}}\key{{\bf find} {\it c} backward on line}{F {\it c}}\key{up {\bf to} {\it c} forward on line}{t {\it c}}\key{up {\bf to} {\it c} backward on line}{T {\it c}}\key{repeat previous \kbd{f}, \kbd{F}, \kbd{t} or \kbd{T}}{;}\key{... in the opposite direction}{,}\newcolumn\title{VIP Quick Reference Card}\section{Searching and Replacing}\key{search forward for {\sl pat}}{/ {\sl pat}}\key{search backward for {\sl pat}}{?\ {\sl pat}}\key{repeat previous search}{n}\key{... in the opposite direction}{N}\key{incremental {\bf search}}{C-s}\key{{\bf reverse} incremental search}{C-r}\key{{\bf replace}}{R}\key{{\bf query} replace}{Q}\key{{\bf replace} a character by another character {\it c}}{r {\it c}}\section{Modifying Commands}The delete (yank, change) commands explained below accept a motion command astheir argument and delete (yank, change) the region determined by the motioncommand. Motion commands are classified into {\it point commands} and{\it line commands}. In the case of line commands, whole lines willbe affected by the command. Motion commands will be represented by{\it m} below.The point commands are as follows:\hskip 5ex\kbd{h l 0 ^ \$ w W b B e E ( ) / ?\ ` f F t T \% ; ,}The line commands are as follows:\hskip 5ex\kbd{j k + - H M L \{ \} G '}\subsection{Delete/Yank/Change Commands}\paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\tabskip=0pt&#\cr\fourcol{}{{\bf delete}}{{\bf yank}}{{\bf change}}\fourcol{region determined by {\it m}}{d {\it m}}{y {\it m}}{c {\it m}}\fourcol{... into register {\it x}}{" {\it x\/} d {\it m}}{" {\it x\/} y {\it m}}{" {\it x\/} c {\it m}}\fourcol{a line}{d d}{Y {\rm or} y y}{c c}\fourcol{current {\bf region}}{d r}{y r}{c r}\fourcol{expanded {\bf region}}{d R}{y R}{c R}\fourcol{to end of line}{D}{y \$}{c \$}\fourcol{a character after point}{x}{y l}{c l}\fourcol{a character before point}{DEL}{y h}{c h}}\subsection{Put Back Commands}Deleted/yanked/changed text can be put back by the following commands.\key{{\bf Put} back at point/above line}{P}\key{... from register {\it x}}{" {\it x\/} P}\key{{\bf put} back after point/below line}{p}\key{... from register {\it x}}{" {\it x\/} p}\subsection{Repeating and Undoing Modifications}\key{{\bf undo} last change}{u {\rm or} :und}\key{repeat last change}{.\ {\rm (dot)}}Undo is undoable by \kbd{u} and repeatable by \kbd{.}.For example, \kbd{u...} will undo 4 previous changes.A \kbd{.} after \kbd{5dd} is equivalent to \kbd{5dd},while \kbd{3.} after \kbd{5dd} is equivalent to \kbd{3dd}.\section{Miscellaneous Commands}\endindentedkeys\paralign to \hsize{#\tabskip=5pt plus 1 fil&#\tabskip=0pt&#\tabskip=0pt&#\tabskip=0pt&#\cr\fivecol{}{{\bf shift left}}{{\bf shift right}}{{\bf filter shell command}}{{\bf indent}}\fivecol{region}{< {\it m}}{> {\it m}}{!\ {\it m\/} {\sl shell-com}}{= {\it m}}\fivecol{line}{< <}{> >}{!\ !\ {\sl shell-com}}{= =}}\key{emulate \kbd{ESC}/\kbd{C-h} in emacs mode}{ESC{\rm /}C-h}\key{emulate \kbd{C-c}/\kbd{C-x} in emacs mode}{C{\rm /}X}\key{{\bf join} lines}{J}\key{lowercase region}{\# c {\it m}}\key{uppercase region}{\# C {\it m}}\key{execute last keyboard macro on each line in the region}{\# g {\it m}}\key{insert specified string for each line in the region}{\# q {\it m}}\key{check spelling of the words in the region}{\# s {\it m}}\section{Differences from Vi}\beginindentedkeysIn VIP some keys behave rather differently from Vi.The table below lists such keys, and you can get the effect of typingthese keys by typing the corresponding keys in the VIP column.\paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr\threecol{}{{\bf Vi}}{{\bf VIP}}\threecol{forward character}{SPC}{l}\threecol{backward character}{C-h}{h}\threecol{next line at first non-white}{RET}{+}\threecol{delete previous character}{X}{DEL}\threecol{get information on file}{C-g}{g}\threecol{substitute characters}{s}{x i}\threecol{substitute line}{S}{c c}\threecol{change to end of line}{C {\rm or} R}{c \$}}(Strictly speaking, \kbd{C} and \kbd{R} behave slightly differently in Vi.)\section{Customization}By default, search is case sensitive.You can change this by including the following line in your \kbd{.vip} file.\hskip 5ex\kbd{(setq vip-case-fold-search t)}\beginindentedkeys\paralign to \hsize{#\tabskip=10pt plus 1 fil&#\tabskip=0pt&#\cr\twocol{{\bf variable}}{{\bf default value}}\twocol{vip-search-wrap-around}{t}\twocol{vip-case-fold-search}{nil}\twocol{vip-re-search}{nil}\twocol{vip-re-replace}{nil}\twocol{vip-re-query-replace}{nil}\twocol{vip-open-with-indent}{nil}\twocol{vip-help-in-insert-mode}{nil}\twocol{vip-shift-width}{8}\twocol{vip-tags-file-name}{"TAGS"}}%\subsection{Customizing Key Bindings}Include (some of) following lines in your \kbd{.vip} fileto restore Vi key bindings.\beginexample(define-key vip-mode-map "\\C-g" 'vip-info-on-file)(define-key vip-mode-map "\\C-h" 'vip-backward-char)(define-key vip-mode-map "\\C-m" 'vip-next-line-at-bol)(define-key vip-mode-map " " 'vip-forward-char)(define-key vip-mode-map "g" 'vip-keyboard-quit)(define-key vip-mode-map "s" 'vip-substitute)(define-key vip-mode-map "C" 'vip-change-to-eol)(define-key vip-mode-map "R" 'vip-change-to-eol)(define-key vip-mode-map "S" 'vip-substitute-line)(define-key vip-mode-map "X" 'vip-delete-backward-char)\endexample\newcolumn\title{Ex Commands in VIP}In vi mode, an Ex command is entered by typing:\hskip 5ex\kbd{:\ {\sl ex-command} RET}\section{Ex Addresses}\paralign to \hsize{#\tabskip=5pt plus 1 fil&#\tabskip=2pt&#\tabskip=5pt plus 1 fil&#\cr\twocolkey{current line}{.}{next line with {\sl pat}}{/ {\sl pat} /}\twocolkey{line {\it n}}{{\it n}}{previous line with {\sl pat}}{?\ {\sl pat} ?}\twocolkey{last line}{\$}{{\it n\/} line before {\it a}}{{\it a} - {\it n}}\twocolkey{next line}{+}{{\it a\/} through {\it b}}{{\it a\/} , {\it b}}\twocolkey{previous line}{-}{line marked with {\it x}}{' {\it x}}\twocolkey{entire buffer}{\%}{previous context}{' '}}Addresses can be specified in front of a command.For example,\hskip 5ex\kbd{:.,.+10m\$}moves 11 lines below current line to the end of buffer.\section{Ex Commands}\endindentedkeys\key{mark lines matching {\sl pat} and execute {\sl cmds} on these lines}{:g /{\sl pat}/ {\sl cmds}}\key{mark lines {\it not\/} matching {\sl pat} and execute {\sl cmds} on these lines}{:v /{\sl pat}/ {\sl cmds}}\key{{\bf move} specified lines after {\sl addr}}{:m {\sl addr}}\key{{\bf copy} specified lines after {\sl addr}}{:co\rm\ (or \kbd{:t})\ \sl addr}\key{{\bf delete} specified lines [into register {\it x\/}]}{:d {\rm [{\it x\/}]}}\key{{\bf yank} specified lines [into register {\it x\/}]}{:y {\rm [{\it x\/}]}}\key{{\bf put} back text [from register {\it x\/}]}{:pu {\rm [{\it x\/}]}}\key{{\bf substitute} {\sl repl} for first string on line matching {\sl pat}}{:s /{\sl pat}/{\sl repl}/}\key{repeat last substitution}{:\&}\key{repeat previous substitute with previous search pattern as {\sl pat}}{:\~{}}\key{{\bf read} in a file}{:r {\sl file}}\key{{\bf read} in the output of a shell command}{:r!\ {\sl command}}\key{write out specified lines into {\sl file}}{:w {\sl file}}\key{write out specified lines at the end of {\sl file}}{:w>> {\sl file}}\key{write out and then quit}{:wq {\sl file}}\key{define a macro {\it x} that expands to {\sl cmd}}{:map {\it x} {\sl cmd}}\key{remove macro expansion associated with {\it x}}{:unma {\it x}}\key{print line number}{:=}\key{print {\bf version} number of VIP}{:ve}\key{shift specified lines to the right}{:>}\key{shift specified lines to the left}{:<}\key{{\bf join} lines}{:j}\key{mark specified line to register {\it x}}{:k {\it x}}\key{{\bf set} a variable's value}{:se}\key{run a sub{\bf shell} in a window}{:sh}\key{execute shell command {\sl command}}{:!\ {\sl command}}\key{find first definition of {\bf tag} {\sl tag}}{:ta {\sl tag}}\copyrightnotice\bye% Local variables:% compile-command: "tex refcard"% End:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -