about summary refs log blame commit diff stats
path: root/tools/vim.html
blob: 89ac0c064b4f417f58a02ac7a93cea59e2bffafe (plain) (tree)
1
2
3
4
5
6
7
8
9



                              
                           


           
                                            
                              



                                                                      
                                     





















                                                                               

                                                                                          

              
                                            
 
                                                                  

                                                   
                                            
 






                                










                                            


                                          
 


                        
 













                                                               



























                                                                         

















































                                                             
                                            
                        
                                       

                                    







                                                           

             
                                              


                                                                         
                                       
 








                                                                                                                                                      
                   
                                         



                                                  

             
                                            
                                                         
                          
                  




                                                                                            
<!DOCTYPE html>
<html dir="ltr" lang="en">
    <head>
        <meta charset='utf-8'>
        <title> Vim</title>
    </head>
    <body>

        <a href="index.html">Tools Index</a>
        <h1 id="vim"> Vim</h1>

        <p>&lt;leader&gt; with default configuration is key \, so when
        you see &lt;leader&gt;-W means pressing \W</p>

        <h2 id="vimrc">1. Vim RC</h2>

        <p>Read
        <a href="http://dougblack.io/words/a-good-vimrc.htm">"A good vimrc"</a>
        for more information.</p>

        <dl>
            <dt>/usr/share/vim/vimrc</dt>
            <dd>System wide Vim initializations.</dd>
            <dt>~/.vimrc</dt>
            <dd>Your personal Vim initializations.</dd>
        </dl>

        <p>Copy vimrc skeleton example, so that each user have a base to start
        personalizing it;</p>

        <pre>
        $ sudo cp ~/sysdoc/conf/etc/skel/.vimrc /etc/skel/
        $ sudo mkdir /etc/skel/.vim
        $ sudo mkdir /etc/skel/.vim/swap
        $ sudo mkdir /etc/skel/.vim/views
        $ sudo mkdir /etc/skel/.vim/undodir
        $ sudo mkdir /etc/skel/.vim/backup
        $ wget -O wombat2mod.vim  http://www.vim.org/scripts/download_script.php?src_id=40
        $ mv wombat2mod.vim /usr/share/vim/colors/
        </pre>

        <h2 id="color">2. Color schemes</h2>

        <p>Default vimrc skeleton is configured to use wombat2mod,
        which is installed by adduser skeleton.</p>

        <h2 id="split">3. Split and Tab</h2>

        <p>Horizontal split;</p>
        <pre>
        :sp
        </pre>

        <p>Vertical split;</p>
        <pre>
        :vsp
        </pre>

        <p>Change horizontal to vertical</p>
        <pre>
        ctrl+w H
        </pre>

        <p>Change vertical to horizontal</p>
        <pre>
        ctrl+w J
        </pre>

        <p>Move between window splits;</p>

        <pre>
        ctrl+w (k,j,l,h)
        </pre>

        <h2 id="filebrowser">4. File browser</h2>

        <p>Use built in netrw to see directories and files;</p>

        <dl>
            <dt>:Explore</dt>
            <dd>Opens window with file browser.</dd>
            <dt>:Sex</dt>
            <dd>Open horizontal split with file browser.</dd>
            <dt>:Vex</dt>
            <dd>Open vertical split with file browser.</dd>
        </dl>

        <h2 id="edit">5. Editing files</h2>

        <p>Come from background;</p>

        <pre>
        $ fg
        </pre>

        <h3>Moving in vim</h3>

        <p>Moving page up and page down;</p>

        <dl>
            <dt>[Control][b]</dt>
            <dd>Move back one full screen</dd>
            <dt>[Control][f]</dt>
            <dd>Move forward one full screen</dd>
            <dt>[Control][d]</dt>
            <dd>Move forward 1/2 screen</dd>
            <dt>[Control][u]</dt>
            <dd>Move back (up) 1/2 screen</dd>
        </dl>

        <h3>How to use vim</h3>

        <p>In vim you can apply predefined number of times to a operator,
        selection or object. For example to delete the next
        two words press: d + 2 + w. List of important operators objects,
        selections;</p>

        <pre>
        operator + count + object
        </pre>

        <p>Operator;</p>

        <dl>
            <dt>d</dt>
            <dd>Delete</dd>
            <dt>c</dt>
            <dd>Change (d + i)</dd>
            <dt>y</dt>
            <dd>Copy</dd>
            <dt>v</dt>
            <dd>Visual Select</dd>
        </dl>

        <p>Objects;</p>
        <dl>
            <dt>w</dt>
            <dd>Word</dd>
            <dt>s</dt>
            <dd>Sentences</dd>
            <dt>p</dt>
            <dd>Paragraphs</dd>
            <dt>t</dt>
            <dd>Tags</dd>
        </dl>

        <p>Selections are like objects, for example d + i + w
        will delete "inner" word, c + a + w do the same plus
        the space;</p>

        <dl>
            <dt>a</dt>
            <dd>All</dd>
            <dt>i</dt>
            <dd>in</dd>
            <dt>t</dt>
            <dd>Until</dd>
            <dt>f</dt>
            <dd>Find forward</dd>
            <dt>F</dt>
            <dd>Find backward</dd>
        </dl>

        <p>Selection of useful combinations;</p>
        <dl>
            <dt>vat</dt>
            <dd>Select whole tag block.</dd>
            <dt>cit</dt>
            <dd>Change inside tag.</dd>
            <dt>yat</dt>
            <dd>Copy whole tag.</dd>
            <dt>vip<C-V>$A,<Esc></dt>
            <dd>Select a paragraph (vip), switch to visual
            block mode (CTRL V), append to all lines ($A) a
            comma (,), press esc to confirm.</dd>
            <dt>vip&lt;C-V&gt;I,&lt;Esc&gt;</dt>
            <dd>Select a paragraph (vip), switch to visual
            block mode (CTRL V), insert to all lines (I) a
            comma (,), press esc to confirm.</dd>
        </dl>

        <h2 id="spellcheck">6. Spellcheck</h2>

        <p>Press z= over the bad written word and select desired one.</p>

        <h2 id="plugin">7. Plugins</h2>

        <h2 id="vimdiff">8. Vimdiff</h2>

	<p>If two files are open in <a href="#split">split</a> type :diffthis in both windows to get vimdiff of the files. To close type :diffoff.</p>

	<dl>
	<dt>do<dt>
	<dd> Get changes from other window into the current window.</dd>
	<dt>dp</dt>
	<dd>Put the changes from current window into the other window.</dd>
	<dt>]c</dt>
	<dd>Jump to the next change.</dd>
        <dt>[c</dt>
        <dd>Jump to the previous change.</dd>
        <dt>Ctrl W + Ctrl W</dt>
        <dd>Switch to the other split window.</dd>
	</dl>

        <a href="index.html">Tools Index</a>
        <p>This is part of the Hive System Documentation.
        Copyright (C) 2019
        Hive Team.
        See the file <a href="../fdl-1.3-standalone.html">Gnu Free Documentation License</a>
        for copying conditions.</p>

    </body>
</html>