Direkt zum Inhalt Direkt zur Navigation

Linux User Group Bolzano-Bozen-Bulsan

Die GNU/Linux community in Südtirol
La comunita' GNU/Linux in Alto Adige
The GNU/Linux community in South Tyrol
Sektionen
Benutzerspezifische Werkzeuge
Sie sind hier: Startseite Tätigkeiten Workshops Workshops 2007 Slides Workshop vi
Navigation
Anmelden


Passwort vergessen?
 
Artikelaktionen

Slides Workshop vi

von Paolo DongilliZuletzt verändert: 15.09.2007 00:35

Hier klicken, um die Datei herunterzuladen

Größe: 7.1 kB - Dateityp text/plain

Dateiinhalt

/-------------------------------------------------------------------------\
|                                                                         |
|                                                                         |
|                           LUGBZ Workshop VI(M)                          |
|                                                                         |
|                                                                         |
|                                     ##             ##                   |
|                   #    #     #     #      #    #     #                  |
|                   #    #     #    #       ##  ##      #                 |
|                   #    #     #    #       # ## #      #                 |
|                   #    #     #    #       #    #      #                 |
|                    #  #      #     #      #    #     #                  |
|                     ##       #      ##    #    #   ##                   |
|                                                                         |
|                                                                         |
|                                                                         |
|                                                                         |
|                                                                         |
|                                                                         |
|                                                                         |
|              2007-09-04  -  Chris Mair  -   http://www.1006.org         |
|                                                                         |
|                                                                         |
\-------------------------------------------------------------------------/






  history


  * vi stands for visual

  * screen-oriented text editor written by Bill Joy in 1976 for BSD

  * optimized to edit files over slow / high-latency lines 
    (mimizes number of key-strokes to get something done)

  * optimized for touch-typing
    (doesn't require lots of strange CTRL-SHIFT-ALT-whatever combos)

  * part of POSIX: every *nix comes with vi in the default install
















  availability


  * OpenBSD 4.1:
        vi == nvi
        vim is available as optional package

  * Mac OS X 10.4:
        vi == vim

  * Solaris 10:
        vi == some ancient version of vi

  * GNU/Linux (Ubuntu 7.04 "Feisty Fawn"):
        vi == vim-tiny (mimimal vim package compiled to be small)
        vi == vim, after installing the optional package vim-full














  two editing modes


  * start in command mode

  * hit 'i' to go to insert mode
        -> can edit text there
        -> use cursor keys, backspace, etc (unless you have a 1976' vi)
 
  * hit ESC to go back to command mode

  * YOU SHOULD STAY IN COMMAND MODE MOST OF THE TIME

  * just hit ESC when you stop editing or when you're in doubt

  * NEK: vi called as view -> read only mode














  get the hell out of it 


  * so you decided this workshop was boring...

    ... then at least get this:

        :wq  -> save and quit

        :q!  -> exit without saving


  * NEK: ZZ is the same as :wq

















  inserting is i, right?
 

  * there's more!

        i  -> insert at cursor

        I  -> insert at begin of line

        a  -> insert after cursor (append)

        A  -> insert after the end of the line

        o  -> insert new line after cursor and insert

        O  -> insert new line before cursor and insert














  move around quickly


  * does a feisty fawn move quickly?

  * try these:

        h j k l  -> cursor (vi was invented before cursor keys!)

        b e      -> move to begin/end of word

        0 ^      -> start of line / first non-blank char in line

        $        -> end of line

        G        -> end of file

   * YOU CAN PREFIX ANY OF THESE WITH A NUMBER!
     
         G is often used:

         100G    -> move to line 100

          






  delete things


  * deleting chars when DEL or BACKSPACE don't cut it:

        x  -> del
        X  -> backspace

  * YOU CAN PREFIX ANY OF THE MOVEMENT COMMANDS WITH d!

        d$  -> delete rest of line

        etc...

  * more:

        dd  -> delete line

  * everything is prefixable with numbers, example

        4dd  -> delete 4 lines
  








  changing, replacing, undo


  * c is like d, but it switches to insert mode immediately

  * replacing:

        r  -> replace single char under cursor

        R  -> overwrite mode

  * undo / redo

        u       -> undo

        CTRL-R  -> redo

  * POWER-NEK: . repeats last insertion












  copy & paste


  * copy

        y works like d

        yy    -> copy whole line
        
        20yy  -> copy 20 lines

        3ye   -> copy 3 words (e -> end of word)
        
  * paste

        P  -> paste before cursor
 
        p  -> paste after cursor


  * NEK: xp -> easiest way to exchange 2 chars!

  * NEK: J  -> join lines 
  






  searching

 
  * search:

        /findme  -> find next

        ?findme  -> find previous 

        n/N      -> redo find / redo find other direction

        %        -> find matching parens

        # / *    -> find prev / next word under cursor

  * :set ic  -> set case insensitive search mode

  * SUPER-POWER-NEK[VIM]: CTRL-p  -> complete word (inverse search)

  * search and replace:

        : where s / from / to / [g]
        where == %  -> the whole file
        






  help!

  
  * vim has a built-in tutorial:

        vimtutor
        vimtutor de
        vimtutor it

  * there's online help:

        :help

        
  * google for "vim cheat sheet" or "vi reference guide"!

        example: 
        http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html












  colours / visual selection [VIM]
   

  * you might need (bash): export TERM=xterm-color
 
  * :syn on

  * I usually limit colours (see my .vimrc)

  * visual selection:

        1: v  -> start selection

        2: do stuff

        3: x or y














  programming support

  
  * auto identation (I don't use it :)

  * manual identation
        >  -> indent
        <  -> unindent 
        =  -> autoindent selected block
  
  * ctags (= external program you need to run)
        CTRL-]  -> open function definition
        CTRL-t  -> go back

  * macros
        q   a-z   do stuff   q   -> record as name a-z
        @   a-z                  -> play back a-z

  * merge file
        :r filename










  my .vimrc 


" show tabs as 4 spaces long (instead of 8)
set tabstop=4

" indent 4 spaces (instead of 8)
set shiftwidth=4

" put spaces instead of tabs (warning: Makefiles don't like that)
set expandtab

" use syntax hilighting, but not too many colours
syn on
hi clear Normal
hi Constant    ctermfg=Black
hi Special     ctermfg=Black
hi Statement   ctermfg=Black
hi Identifier  ctermfg=Black
hi Type        ctermfg=Black
hi PreProc     ctermfg=Black
hi Comment     ctermfg=DarkBlue
hi String      ctermfg=DarkRed






  license

  * This work is licensed under the Creative Commons Attribution-ShareAlike 2.5
    Italy License - see
    http://creativecommons.org/licenses/by-sa/2.5/it/
« April 2020 »
So Mo Di Mi Do Fr Sa
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
 

Powered by Plone CMS, the Open Source Content Management System

Diese Website erfüllt die folgenden Standards: