|
|
- <html>
- <head>
- <title>vim cheatsheet</title>
- <style>
- body {
- font-family: Georgia, Serif;
- margin-left: 2em;
- }
- th {
- font-size: normal;
- text-align: right;
- }
- td {
- padding-right: .5em;
- padding-left: .5em;
- padding-bottom: .5em;
- vertical-align: top;
- }
- td.keymap {
- text-align: center;
- }
- kbd {
- /* border-bottom: 1px solid #EAEEF2;
- border-right: 1px solid #EAEEF2; */
- padding: 1px;
- }
- kbd, pre, td.keymap {
- font-family: monospace;
- font-weight: bold;
- font-size: larger;
- color: green;
- }
- .change kbd, kbd.change { color: orange; }
- .insert kbd, kbd.insert { color: blue; }
- .delete kbd, kbd.delete { color: red; }
-
- i { color: gray; }
- </style>
- </head>
-
- <body>
-
- <table>
-
- <tr>
- <th>edit</th>
-
- <td>
- <span class="insert">
- <kbd>i</kbd>nsert at cursor<br>
- <kbd>I</kbd>nsert at start<br>
- <kbd>a</kbd>ppend after cursor<br>
- <kbd>A</kbd>ppend to line<br>
- </span>
- </td>
-
- <td>
- <span class="delete">
- <kbd>x</kbd> kill char<br>
- <kbd>X</kbd> kill back<br>
- <kbd>d</kbd>elete/cut text<br>
- <kbd>d<i>obj</i></kbd> - <kbd>dw</kbd>, <kbd>d$</kbd>, etc.<br>
- <kbd>dd</kbd> clears whole line<br>
- <kbd>D</kbd> to end of line
- </span><br>
- <span class="change"><kbd>c</kbd>hange - <kbd>c<i>obj</i></kbd>, <kbd>ci<i>obj</i></kbd>, <kbd>cc</kbd>, <kbd>C</kbd></span><br>
- </td>
-
- <td>
- <kbd class="change">r</kbd>eplace one char<br>
- <kbd class="change">R</kbd>eplace text<br>
- <span class="change"><kbd>s</kbd>ubstitute char</span><br>
- <kbd>y</kbd>ank/copy - <kbd>y<i>obj</i></kbd>, <kbd>yy</kbd><br>
- <kbd>p</kbd>ut (paste)<br>
- <kbd>u</kbd>ndo, <kbd>ctrl-r</kbd>edo<br>
- <kbd>v</kbd>isual select<br>
- <kbd>.</kbd> repeat edit
- </td>
- </tr>
-
- <tr>
- <th>move</th>
-
- <td>
- <kbd>e</kbd>nd, <kbd>b</kbd>egin <kbd>w</kbd>ord<br>
- <kbd>$</kbd>,<kbd>0</kbd> end, begin line<br>
- <kbd>(</kbd>,<kbd>)</kbd> sentence ←, →<br>
- <kbd>{</kbd>,<kbd>}</kbd> paragraph ←, →<br>
- <kbd>ctrl-b</kbd>ack, <kbd>ctrl-f</kbd>wd page<br>
- <kbd>fA</kbd> goes to next "A"<br>
- <kbd>tA</kbd> before next "A"
- </td>
-
- <td class="keymap">
- <small>gg</small><br>
- <small><C-b></small><br>
- H<br>
- k<br>
- { ( B b h l w W ) }<br>
- j<br>
- L<br>
- <small><C-f></small><br>
- <small>G</small>
- </td>
-
- <td>
- <kbd>/<i>pattern</i></kbd> →<br>
- <kbd>?<i>pattern</i></kbd> ←<br>
- <kbd>n</kbd>ext <i>pattern</i><br>
- <kbd>*</kbd> word under cursor<br>
- <kbd>%</kbd> matching bracket<br>
- <kbd>m<i>x</i></kbd> set mark <i>x</i><br>
- <kbd>``</kbd> go back, <kbd>`<i>x</i></kbd> to mark
- </td>
- </tr>
-
- <tr>
- <th>files<br><small>& windows</small></th>
-
- <td>
- <kbd>:e <i>file</i></kbd> edit<br>
- <kbd>:w <i>file</i></kbd> write<br>
- <kbd>:wq</kbd> write & quit<br>
- <kbd>:r <i>file</i></kbd> read into buffer<br>
- <kbd>:r !<i>command</i></kbd> - get output<br>
- <kbd>:sp <i>file</i></kbd> - in new window<br>
- <kbd>:q</kbd> - quit buffer/window
- </td>
-
- <td colspan=2><kbd>ctrl-w</kbd> then...<br>
- <kbd>n</kbd>ew<br>
- <kbd>s</kbd>plit current<br>
- <kbd>v</kbd>ertical split<br>
- <kbd>h</kbd>, <kbd>j</kbd>, <kbd>k</kbd>, <kbd>l</kbd> jump ← ↓ ↑ →<br>
- <kbd>+</kbd>, <kbd>-</kbd>, <kbd>=</kbd> size current<br>
- <kbd>f</kbd>ile under cursor in new window<br>
- </td>
- </tr>
-
- </table>
-
- <p>- - - cut or fold here - - -</p>
-
- <table>
-
- <tr>
- <th>style</th>
-
- <td>
- <kbd>:set expandtab</kbd> - use spaces<br>
- <kbd>:set shiftwidth=2</kbd><br>
- <kbd>:set textwidth=70</kbd><br>
- <kbd>:set nowrap</kbd>
- </td>
-
- <th>tweak</th>
-
- <td>
- <kbd class="change">J</kbd>oin<br>
- <kbd class="change">gq<i>obj</i></kbd> - autoformat<br>
- <kbd>~</kbd> change case of char<br>
- <kbd>>></kbd>,<kbd><<</kbd> indent, unindent<br>
- <kbd>=</kbd> autoindent<br>
- <kbd>:rangesort</kbd><br>
- </td>
- </tr>
- </table>
-
- <p><kbd><i>n</i>ctrl-a</kbd>, <kbd><i>n</i>ctrl-x</kbd> - inc or dec number by <i>n</i></p>
-
- <p><kbd class="change">:s/pattern/replacement/g</kbd> - on this line (g for multiple)<br>
- <kbd class="change">:%s/pattern/replacement/gc</kbd> - on every line but confirm<br>
- <kbd class="change">:perldo s/foo/bar/g</kbd> - do Perl on every line<br>
- <kbd class="change">:.perldo s/bar/baz/g</kbd> - do Perl on this line</p>
-
- </body>
- </html>
|