summary refs log blame commit diff stats
path: root/Makefile
blob: 6c5ed88c94e1f3d97131a7c65354af60647de360 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15














                                                                       
             
                                                      
                                                                                   


                                                                            
                                       
                   
            
               

                  
 
                
                                                            
 



                                  
                                          


                                  
                                             
                                                        

                                                                    
                                                                          
 
        
                                                 

                                                            
              
                                                                      
 
      

                                                                          
 





                                                  
                                                                       
 



                                                                               


                                                           
         
                                                              
 
         
                                                                                              
 
                                                                       
# Copyright (C) 2009, 2010  Roman Zimbelmann <romanz@lavabit.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

NAME = ranger
VERSION = $(shell grep -m 1 -o '[0-9][0-9.]\+' README)
SNAPSHOT_NAME ?= $(NAME)-$(VERSION)-$(shell git rev-parse HEAD | cut -b 1-8).tar.gz
# Find suitable python version (need python >= 2.6 or 3.1):
PYTHON ?= $(shell python -c 'import sys; sys.exit(sys.version < "2.6")' && \
	which python || which python3.1 || which python3 || which python2.6)
SETUPOPTS ?= '--record=install_log.txt'
DOCDIR ?= doc/pydoc
DESTDIR ?= /
PYOPTIMIZE ?= 1

CWD = $(shell pwd)

default: compile
	@echo 'Run `make options` for a list of all options'

options: help
	@echo
	@echo 'Options:'
	@echo 'PYTHON = $(PYTHON)'
	@echo 'PYOPTIMIZE = $(PYOPTIMIZE)'
	@echo 'DOCDIR = $(DOCDIR)'

help:
	@echo 'make install: Install $(NAME)'
	@echo 'make doc: Create the pydoc documentation'
	@echo 'make clean: Remove the compiled files (*.pyc, *.pyo)'
	@echo 'make cleandoc: Remove the pydoc documentation'
	@echo 'make snapshot: Create a tar.gz of the current git revision'

install:
	$(PYTHON) setup.py install $(SETUPOPTS) \
		'--root=$(DESTDIR)' --optimize=$(PYOPTIMIZE)

compile: clean
	PYTHONOPTIMIZE=$(PYOPTIMIZE) $(PYTHON) -m compileall -q ranger

clean:
	find ranger -regex .\*.py[co]\$$ -delete
	find ranger -depth -name __pycache__ -type d -exec rm -rf -- {} \;

doc: cleandoc
	mkdir -p $(DOCDIR)
	cd $(DOCDIR); \
		$(PYTHON) -c 'import pydoc, sys; \
		sys.path[0] = "$(CWD)"; \
		pydoc.writedocs("$(CWD)")'
	find . -name \*.html -exec sed -i 's|'$(CWD)'|../..|g' -- {} \;

man:
	pod2man --stderr --center='ranger manual' --date='$(NAME)-$(VERSION)' \
		--release=$(shell date +%x) doc/ranger.pod doc/ranger.1

manhtml:
	pod2html doc/ranger.pod --outfile=doc/ranger.1.html

cleandoc:
	test -d $(DOCDIR) && rm -f -- $(DOCDIR)/*.html || true

snapshot:
	git archive --prefix='$(NAME)-$(VERSION)/' --format=tar HEAD | gzip > $(SNAPSHOT_NAME)

.PHONY: default options compile clean doc cleandoc snapshot install man
r: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
<!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 <a href="conf/etc/skel/.vimrc">/etc/skel/.vimrc</a> skeleton example, so that each user have a base to start
        personalizing it;</p>

        <pre>
        $ sudo cp ~/doc/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>

        <p>To find files, run vim at top level of project and then use find auto completion or *;</p>

        <pre>
        :find nameofdirectory + Tab
        :find nameofdir* + Tab
        </pre>

        <p>For file browsing there is also a option to use edit;</p>

        <pre>
        :edit nameofdirectory/
        </pre>

        <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="ctags">6. Tags</h2>

        <p>Tags, at top level of project;</p>

        <pre>
        $ ctags -R .
        $ vim src/hello_world.c
        </pre>

        <p>To follow a tag;</p>

        <pre>
        Ctrl-]
        </pre>

        <p>To get back;</p>

        <pre>
        Ctrl-t
        </pre>

        <p>Autocomplete, press to see all options;</p>

        <pre>
        Ctrl-n
        </pre>

        <p>To move forward and backward in options;</p>

        <pre>
        Ctrl-n Ctrl-p
        </pre>

        <p>Show auto completion with references to only this file;</p>

        <pre>
        Ctrl-x Ctrl-n
        </pre>

        <p>Show auto completion with filenames, * Tab can be used;</p>

        <pre>
        Ctrl-x Ctrl-f
        </pre>

        <p>Show auto completion with only tags;</p>

        <pre>
        Ctrl-x Ctrl-]
        </pre>

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

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

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

        <h2 id="vimdiff">9. 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>