SlideShare uma empresa Scribd logo
1 de 30
Baixar para ler offline
Introduction
         Getting started with vim
                            Tasks
               Search and replace
                    Configuration




            vim – Vi IMproved, a programmers text editor

                                     Bart Van Loon


                                    31st January 2012




1 / 30                                           Bart Van Loon   vim – Vi IMproved, a programmers tex
Introduction
          Getting started with vim
                             Tasks
                Search and replace
                     Configuration




         1 Introduction

         2 Getting started with vim
                Introduction
                Starting and quitting
                The cursor
                Editing text

         3 Tasks

         4 Search and replace

         5 Configuration



2 / 30                                  Bart Van Loon   vim – Vi IMproved, a programmers tex
Introduction
         Getting started with vim
                            Tasks
               Search and replace
                    Configuration

 How it all began: vi
 A part of history


              text editor originally created for UNIX
              old: first release in 1976 (Open Source: BSD license)
              but modern: 2009 survey by Linux Journal → vi[m] most
              widely used text editor (36%); second place: gedit (19%)




3 / 30                                           Bart Van Loon   vim – Vi IMproved, a programmers tex
Introduction
         Getting started with vim
                            Tasks
               Search and replace
                    Configuration

 How it all began: vi
 Modal editor




              vi is a modal editor:
              insert mode: typed text becomes part of the document
              normal mode: keystrokes are interpreted as commands
               i in normal mode: switch to insert mode; i again at this
              point: place an “i” character in the document
               esc in insert mode: switch to normal mode
              advantage: both text editing and command operations
              without requiring removal of hands from the home row
              ⇒ speed!



4 / 30                                        Bart Van Loon   vim – Vi IMproved, a programmers tex
Introduction
          Getting started with vim
                             Tasks
                Search and replace
                     Configuration

 How it all began: vi
 It breaks my fingers!


         Many ideas, shortcuts, keystrokes, . . . can be explained by looking
         at a common computer keyboard from the seventies.




5 / 30                                           Bart Van Loon   vim – Vi IMproved, a programmers tex
Introduction
         Getting started with vim
                            Tasks
               Search and replace
                    Configuration

 How it all began: vi
 Contemporary derivatives and clones




                      vi: traditional vi ported to modern systems
                   vim: (“Vi IMproved”) vi with many more features
               elvis: once popular clone with some extra features
                   nvi: default derivative shipped with all BSDs
                 vile: attempt to mix emacs and vi
                     ...




6 / 30                                            Bart Van Loon   vim – Vi IMproved, a programmers tex
Introduction
                                    Introduction
         Getting started with vim
                                    Starting and quitting
                            Tasks
                                    The cursor
               Search and replace
                                    Editing text
                    Configuration

 vim
 Introduction




              first released publicly in 1991 (Open Source charityware)
              still actively developed and maintained
              cross platform
              additional features specifically designed for editing source code
              customisable through plugins and vimscript
              described as “very much compatible with vi”, but not 100%
              huge community constantly at war with the emacs-community




7 / 30                                                      Bart Van Loon   vim – Vi IMproved, a programmers tex
Introduction
                                     Introduction
          Getting started with vim
                                     Starting and quitting
                             Tasks
                                     The cursor
                Search and replace
                                     Editing text
                     Configuration

 vim
 Sooooooo many features

         completion, comparison and merging of files, comprehensive integrated
         help system, extended regular expressions, scripting languages (both
         native and through alternative scripting interpreters such as Perl, Python,
         Ruby, Tcl, etc. . . ) including support for plugins, a graphical user
         interface, limited integrated development environment-like features,
         mouse interaction (both with and without the GUI), folding, editing of
         compressed or archived files in gzip, bzip2, zip, and tar format and files
         over network protocols such as SSH, FTP, and HTTP, session state
         preservation, spell checking, split (horizontal and vertical) and tabbed
         windows, unicode and other multi-language support, syntax highlighting,
         trans-session command, search and cursor position histories, multiple
         level undo/redo history which can persist across editing sessions, visual
         mode, . . .

8 / 30                                                       Bart Van Loon   vim – Vi IMproved, a programmers tex
Introduction
                                     Introduction
          Getting started with vim
                                     Starting and quitting
                             Tasks
                                     The cursor
                Search and replace
                                     Editing text
                     Configuration

 Getting started


         Starting vim
               vim; or
               vim <filename>; or
               vim [options] <filename>



         One useful option is +<n>, which opens the file and immediately
         puts the cursor on line <n>.




9 / 30                                                       Bart Van Loon   vim – Vi IMproved, a programmers tex
Introduction
                                      Introduction
           Getting started with vim
                                      Starting and quitting
                              Tasks
                                      The cursor
                 Search and replace
                                      Editing text
                      Configuration

 Getting started


          Modes
                by default you start in normal mode
                go to insert mode from normal mode
                        type i to start entering text at the cursor
                        type R to start replacing text at the cursor
                        type o to open a new line at the cursor
                        type O to open a new line above the cursor
                hit esc to enter normal mode




10 / 30                                                       Bart Van Loon   vim – Vi IMproved, a programmers tex
Introduction
                                      Introduction
           Getting started with vim
                                      Starting and quitting
                              Tasks
                                      The cursor
                 Search and replace
                                      Editing text
                      Configuration

 Getting started


          Exiting vim
                commands to quit:
                   : x ← : save and quit
                   : q ← : just quit
                 : q ! ← : force quit (without saving!)
                shortcut from normal mode:
                       Z Z : quit and save only if changes were made




11 / 30                                                       Bart Van Loon   vim – Vi IMproved, a programmers tex
Introduction
                                      Introduction
           Getting started with vim
                                      Starting and quitting
                              Tasks
                                      The cursor
                 Search and replace
                                      Editing text
                      Configuration

 Moving the cursor

          Relative movements:
                         h : one character left
                         j : one line down
                         k : one line up
                         l : one character right
                         w : one word forward
                         b : one word back

          Adding a digit multiplies the movement. Try 5 w , 1 2 k ,
          2 b , ...

12 / 30                                                       Bart Van Loon   vim – Vi IMproved, a programmers tex
Introduction
                                      Introduction
           Getting started with vim
                                      Starting and quitting
                              Tasks
                                      The cursor
                 Search and replace
                                      Editing text
                      Configuration

 Moving the cursor


          Absolute movements in the file:
               ^ or 0 : beginning of the line
                         $ : end of the line
                     g g : beginning of the file
                         G : end of the file
               <d> G : line <d>
                     ` . : your last edit




13 / 30                                                       Bart Van Loon   vim – Vi IMproved, a programmers tex
Introduction
                                      Introduction
           Getting started with vim
                                      Starting and quitting
                              Tasks
                                      The cursor
                 Search and replace
                                      Editing text
                      Configuration

 Moving the cursor



          Absolute movements in the screen (visible area):
                         H : highest line on the screen
                         M : middle line on the screen
                         L : lowest line on the screen
               ctrl-f : page (screen) forward
               ctrl-b : page (screen) backward




14 / 30                                                       Bart Van Loon   vim – Vi IMproved, a programmers tex
Introduction
                                      Introduction
           Getting started with vim
                                      Starting and quitting
                              Tasks
                                      The cursor
                 Search and replace
                                      Editing text
                      Configuration

 Editing text


          Inserting text:
                         i : insert text at the cursor
                         a : insert text after the cursor (append)
                         I : insert text at the beginning of the line
                         A : insert text at the end of the line


          In insert mode, you can use the arrow keys to navigate the cursor,
          but often going back to normal mode will be much faster.



15 / 30                                                       Bart Van Loon   vim – Vi IMproved, a programmers tex
Introduction
                                      Introduction
           Getting started with vim
                                      Starting and quitting
                              Tasks
                                      The cursor
                 Search and replace
                                      Editing text
                      Configuration

 Editing text


          Deleting text:
                         x : delete character at the cursor (delete)
                         X : delete character before the cursor (backspace)



          Replacing text:
               r <c> : replace the current character with <c>




16 / 30                                                       Bart Van Loon   vim – Vi IMproved, a programmers tex
Introduction
                                      Introduction
           Getting started with vim
                                      Starting and quitting
                              Tasks
                                      The cursor
                 Search and replace
                                      Editing text
                      Configuration

 Visual mode




          For selecting areas of text, there is visual mode:
                         v : start visual mode
                         V : start visual line mode
               ctrl-v : start visual block mode




17 / 30                                                       Bart Van Loon   vim – Vi IMproved, a programmers tex
Introduction
                                      Introduction
           Getting started with vim
                                      Starting and quitting
                              Tasks
                                      The cursor
                 Search and replace
                                      Editing text
                      Configuration

 Operators and motions

          Example operators:
                         d : delete
                         y : yank (copy)
                         c : change

          Example motions1 :
                         $ : to end of line
                         G : to end of file
                         e : to end of current word

             1
                 remember the part on “moving your cursor”?
18 / 30                                                       Bart Van Loon   vim – Vi IMproved, a programmers tex
Introduction
                                      Introduction
           Getting started with vim
                                      Starting and quitting
                              Tasks
                                      The cursor
                 Search and replace
                                      Editing text
                      Configuration

 Combining operators and motions


          Combining operators and motions generates some really powerful
          commands. Some examples are:
                     y $ : copy from the cursor until the end of the line
                d g g : delete from the cursor until the beginning of the file


          Now lets add counts to increase the power:
                y 3 k : copy the previous 3 lines
                d 5 w : delete the next 5 words



19 / 30                                                       Bart Van Loon   vim – Vi IMproved, a programmers tex
Introduction
                                      Introduction
           Getting started with vim
                                      Starting and quitting
                              Tasks
                                      The cursor
                 Search and replace
                                      Editing text
                      Configuration

 More power


          Another nice operator:
                         = : fix indenting


          Some other nice motions:
                         ( : to the beginning of the current sentence
                         ) : to the beginning of the next sentence
                         % : to the matching bracket, parenthesis, braces, . . .




20 / 30                                                       Bart Van Loon   vim – Vi IMproved, a programmers tex
Introduction
                                      Introduction
           Getting started with vim
                                      Starting and quitting
                              Tasks
                                      The cursor
                 Search and replace
                                      Editing text
                      Configuration

 Double operators



          When entering an operator twice, it operates on the complete
          current line:
                     d d : delete the current line
                     y y : copy the current line
                       ...




21 / 30                                                       Bart Van Loon   vim – Vi IMproved, a programmers tex
Introduction
                                      Introduction
           Getting started with vim
                                      Starting and quitting
                              Tasks
                                      The cursor
                 Search and replace
                                      Editing text
                      Configuration

 The put command


          To paste previously deleted or yanked (copied) text:
                         p : put (paste) after the cursor
                         P : put (paste) before the cursor


          Some nice usage examples:
                     x p : swap the current character with the next one
                d d p : swap the current line with the next one
                     5 p : paste 5 times after the cursor



22 / 30                                                       Bart Van Loon   vim – Vi IMproved, a programmers tex
Introduction
           Getting started with vim
                              Tasks
                 Search and replace
                      Configuration

 Repeating tasks


          Undo and redo:


          You can think of each command (combined or not) as a task.
                         . : repeat last task
                         u : undo last task
               ctrl-r : undo last undo (redo)


          Typing text is also a task!



23 / 30                                         Bart Van Loon   vim – Vi IMproved, a programmers tex
Introduction
           Getting started with vim
                              Tasks
                 Search and replace
                      Configuration

 Macros




          A group of tasks can be recorded as a macro:
               q <a> : start recording macro with name <a>
                         q : stop recording current macro
               @ <a> : replay macro with name <a>




24 / 30                                            Bart Van Loon   vim – Vi IMproved, a programmers tex
Introduction
           Getting started with vim
                              Tasks
                 Search and replace
                      Configuration

 Search


          To start:
          / <p> ← : forward search for <p>
          ? <p> ← : backward search for <p>


          Afterwards:
                         n : repeat previous search
                         N : repeat previous search in opposite direction




25 / 30                                               Bart Van Loon   vim – Vi IMproved, a programmers tex
Introduction
           Getting started with vim
                              Tasks
                 Search and replace
                      Configuration

 Search and replace


          Structure of the command:

                                         :As/B/C/D←

          with:
                          A : area on which to operate
                          B : the pattern to search for (regular expression)
                          C : the new word to replace the found pattern with
                          D : any flags to fine tune the behaviour




26 / 30                                               Bart Van Loon   vim – Vi IMproved, a programmers tex
Introduction
           Getting started with vim
                              Tasks
                 Search and replace
                      Configuration

 Search and replace

          Examples areas:
                          % : the complete file
                   ’<,’> : the selected area
               (empty) : the current line


          Example flags:
                           c : confirm each substitution
                           g : replace all occurrences on one line
                            i : ignore the case for searching



27 / 30                                                 Bart Van Loon   vim – Vi IMproved, a programmers tex
Introduction
          Getting started with vim
                             Tasks
                Search and replace
                     Configuration

 ~/.vim*




               your configuration is stored in ~/.vimrc
               system-wide configuration is stored in /etc/vimrc
               your plugins, languages, . . . live in ~/.vim/




28 / 30                                            Bart Van Loon   vim – Vi IMproved, a programmers tex
Introduction
           Getting started with vim
                              Tasks
                 Search and replace
                      Configuration

 The set-command

          To change your configuration at runtime, use the set-command.
          Examples:
                :set spell← to enable spell checking
                :set number← show line numbers
                :set syntax=<lang>← to highlight according to <lang>

          To unset an option, prepend it with no:
                :set nospell←
                :set nonumber←
                ...


29 / 30                                         Bart Van Loon   vim – Vi IMproved, a programmers tex
Introduction
          Getting started with vim
                             Tasks
                Search and replace
                     Configuration

 References



               the vimtutor-command
               http://en.wikipedia.org/wiki/Vi
               http://en.wikipedia.org/wiki/Vim_(text_editor)
               https://users.cs.jmu.edu/bernstdh/web/common/
               help/vim.php
               http://www.youtube.com/watch?v=SI8TeVMX8pk
               http://www.youtube.com/watch?v=V3ccIf-cfnQ




30 / 30                                   Bart Van Loon   vim – Vi IMproved, a programmers tex

Mais conteúdo relacionado

Semelhante a Vi IMproved, a programmers text editor (6)

Vi editor
Vi editorVi editor
Vi editor
 
Vi and redirection & piping in linux
Vi and redirection & piping in linuxVi and redirection & piping in linux
Vi and redirection & piping in linux
 
What is Vim?
What is Vim?What is Vim?
What is Vim?
 
Linux programming - Getting self started
Linux programming - Getting self started Linux programming - Getting self started
Linux programming - Getting self started
 
Programming With WinRT And Windows8
Programming With WinRT And Windows8Programming With WinRT And Windows8
Programming With WinRT And Windows8
 
Open Source Virtualization Hacks
Open Source Virtualization HacksOpen Source Virtualization Hacks
Open Source Virtualization Hacks
 

Mais de Bart Van Loon

Mais de Bart Van Loon (11)

The Perfect Pitch - networking edition
The Perfect Pitch - networking editionThe Perfect Pitch - networking edition
The Perfect Pitch - networking edition
 
Getting started with Imagemagick
Getting started with ImagemagickGetting started with Imagemagick
Getting started with Imagemagick
 
Command line essentials
Command line essentialsCommand line essentials
Command line essentials
 
Met het hoofd online, maar met de voeten in de Vlaamse klei?
Met het hoofd online, maar met de voeten in de Vlaamse klei?Met het hoofd online, maar met de voeten in de Vlaamse klei?
Met het hoofd online, maar met de voeten in de Vlaamse klei?
 
Why study Computer Science?
Why study Computer Science?Why study Computer Science?
Why study Computer Science?
 
The Entrepreneurial Engineer
The Entrepreneurial EngineerThe Entrepreneurial Engineer
The Entrepreneurial Engineer
 
Cultural Learnings of Pakistan for Make Benefit Glorious Nation of Belgium
Cultural Learnings of Pakistan for Make Benefit Glorious Nation of BelgiumCultural Learnings of Pakistan for Make Benefit Glorious Nation of Belgium
Cultural Learnings of Pakistan for Make Benefit Glorious Nation of Belgium
 
Open Source in your company
Open Source in your companyOpen Source in your company
Open Source in your company
 
The DataTank
The DataTankThe DataTank
The DataTank
 
General introduction to Open Source
General introduction to Open SourceGeneral introduction to Open Source
General introduction to Open Source
 
DataTank - alpha
DataTank - alphaDataTank - alpha
DataTank - alpha
 

Último

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 

Vi IMproved, a programmers text editor

  • 1. Introduction Getting started with vim Tasks Search and replace Configuration vim – Vi IMproved, a programmers text editor Bart Van Loon 31st January 2012 1 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  • 2. Introduction Getting started with vim Tasks Search and replace Configuration 1 Introduction 2 Getting started with vim Introduction Starting and quitting The cursor Editing text 3 Tasks 4 Search and replace 5 Configuration 2 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  • 3. Introduction Getting started with vim Tasks Search and replace Configuration How it all began: vi A part of history text editor originally created for UNIX old: first release in 1976 (Open Source: BSD license) but modern: 2009 survey by Linux Journal → vi[m] most widely used text editor (36%); second place: gedit (19%) 3 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  • 4. Introduction Getting started with vim Tasks Search and replace Configuration How it all began: vi Modal editor vi is a modal editor: insert mode: typed text becomes part of the document normal mode: keystrokes are interpreted as commands i in normal mode: switch to insert mode; i again at this point: place an “i” character in the document esc in insert mode: switch to normal mode advantage: both text editing and command operations without requiring removal of hands from the home row ⇒ speed! 4 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  • 5. Introduction Getting started with vim Tasks Search and replace Configuration How it all began: vi It breaks my fingers! Many ideas, shortcuts, keystrokes, . . . can be explained by looking at a common computer keyboard from the seventies. 5 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  • 6. Introduction Getting started with vim Tasks Search and replace Configuration How it all began: vi Contemporary derivatives and clones vi: traditional vi ported to modern systems vim: (“Vi IMproved”) vi with many more features elvis: once popular clone with some extra features nvi: default derivative shipped with all BSDs vile: attempt to mix emacs and vi ... 6 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  • 7. Introduction Introduction Getting started with vim Starting and quitting Tasks The cursor Search and replace Editing text Configuration vim Introduction first released publicly in 1991 (Open Source charityware) still actively developed and maintained cross platform additional features specifically designed for editing source code customisable through plugins and vimscript described as “very much compatible with vi”, but not 100% huge community constantly at war with the emacs-community 7 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  • 8. Introduction Introduction Getting started with vim Starting and quitting Tasks The cursor Search and replace Editing text Configuration vim Sooooooo many features completion, comparison and merging of files, comprehensive integrated help system, extended regular expressions, scripting languages (both native and through alternative scripting interpreters such as Perl, Python, Ruby, Tcl, etc. . . ) including support for plugins, a graphical user interface, limited integrated development environment-like features, mouse interaction (both with and without the GUI), folding, editing of compressed or archived files in gzip, bzip2, zip, and tar format and files over network protocols such as SSH, FTP, and HTTP, session state preservation, spell checking, split (horizontal and vertical) and tabbed windows, unicode and other multi-language support, syntax highlighting, trans-session command, search and cursor position histories, multiple level undo/redo history which can persist across editing sessions, visual mode, . . . 8 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  • 9. Introduction Introduction Getting started with vim Starting and quitting Tasks The cursor Search and replace Editing text Configuration Getting started Starting vim vim; or vim <filename>; or vim [options] <filename> One useful option is +<n>, which opens the file and immediately puts the cursor on line <n>. 9 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  • 10. Introduction Introduction Getting started with vim Starting and quitting Tasks The cursor Search and replace Editing text Configuration Getting started Modes by default you start in normal mode go to insert mode from normal mode type i to start entering text at the cursor type R to start replacing text at the cursor type o to open a new line at the cursor type O to open a new line above the cursor hit esc to enter normal mode 10 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  • 11. Introduction Introduction Getting started with vim Starting and quitting Tasks The cursor Search and replace Editing text Configuration Getting started Exiting vim commands to quit: : x ← : save and quit : q ← : just quit : q ! ← : force quit (without saving!) shortcut from normal mode: Z Z : quit and save only if changes were made 11 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  • 12. Introduction Introduction Getting started with vim Starting and quitting Tasks The cursor Search and replace Editing text Configuration Moving the cursor Relative movements: h : one character left j : one line down k : one line up l : one character right w : one word forward b : one word back Adding a digit multiplies the movement. Try 5 w , 1 2 k , 2 b , ... 12 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  • 13. Introduction Introduction Getting started with vim Starting and quitting Tasks The cursor Search and replace Editing text Configuration Moving the cursor Absolute movements in the file: ^ or 0 : beginning of the line $ : end of the line g g : beginning of the file G : end of the file <d> G : line <d> ` . : your last edit 13 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  • 14. Introduction Introduction Getting started with vim Starting and quitting Tasks The cursor Search and replace Editing text Configuration Moving the cursor Absolute movements in the screen (visible area): H : highest line on the screen M : middle line on the screen L : lowest line on the screen ctrl-f : page (screen) forward ctrl-b : page (screen) backward 14 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  • 15. Introduction Introduction Getting started with vim Starting and quitting Tasks The cursor Search and replace Editing text Configuration Editing text Inserting text: i : insert text at the cursor a : insert text after the cursor (append) I : insert text at the beginning of the line A : insert text at the end of the line In insert mode, you can use the arrow keys to navigate the cursor, but often going back to normal mode will be much faster. 15 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  • 16. Introduction Introduction Getting started with vim Starting and quitting Tasks The cursor Search and replace Editing text Configuration Editing text Deleting text: x : delete character at the cursor (delete) X : delete character before the cursor (backspace) Replacing text: r <c> : replace the current character with <c> 16 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  • 17. Introduction Introduction Getting started with vim Starting and quitting Tasks The cursor Search and replace Editing text Configuration Visual mode For selecting areas of text, there is visual mode: v : start visual mode V : start visual line mode ctrl-v : start visual block mode 17 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  • 18. Introduction Introduction Getting started with vim Starting and quitting Tasks The cursor Search and replace Editing text Configuration Operators and motions Example operators: d : delete y : yank (copy) c : change Example motions1 : $ : to end of line G : to end of file e : to end of current word 1 remember the part on “moving your cursor”? 18 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  • 19. Introduction Introduction Getting started with vim Starting and quitting Tasks The cursor Search and replace Editing text Configuration Combining operators and motions Combining operators and motions generates some really powerful commands. Some examples are: y $ : copy from the cursor until the end of the line d g g : delete from the cursor until the beginning of the file Now lets add counts to increase the power: y 3 k : copy the previous 3 lines d 5 w : delete the next 5 words 19 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  • 20. Introduction Introduction Getting started with vim Starting and quitting Tasks The cursor Search and replace Editing text Configuration More power Another nice operator: = : fix indenting Some other nice motions: ( : to the beginning of the current sentence ) : to the beginning of the next sentence % : to the matching bracket, parenthesis, braces, . . . 20 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  • 21. Introduction Introduction Getting started with vim Starting and quitting Tasks The cursor Search and replace Editing text Configuration Double operators When entering an operator twice, it operates on the complete current line: d d : delete the current line y y : copy the current line ... 21 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  • 22. Introduction Introduction Getting started with vim Starting and quitting Tasks The cursor Search and replace Editing text Configuration The put command To paste previously deleted or yanked (copied) text: p : put (paste) after the cursor P : put (paste) before the cursor Some nice usage examples: x p : swap the current character with the next one d d p : swap the current line with the next one 5 p : paste 5 times after the cursor 22 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  • 23. Introduction Getting started with vim Tasks Search and replace Configuration Repeating tasks Undo and redo: You can think of each command (combined or not) as a task. . : repeat last task u : undo last task ctrl-r : undo last undo (redo) Typing text is also a task! 23 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  • 24. Introduction Getting started with vim Tasks Search and replace Configuration Macros A group of tasks can be recorded as a macro: q <a> : start recording macro with name <a> q : stop recording current macro @ <a> : replay macro with name <a> 24 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  • 25. Introduction Getting started with vim Tasks Search and replace Configuration Search To start: / <p> ← : forward search for <p> ? <p> ← : backward search for <p> Afterwards: n : repeat previous search N : repeat previous search in opposite direction 25 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  • 26. Introduction Getting started with vim Tasks Search and replace Configuration Search and replace Structure of the command: :As/B/C/D← with: A : area on which to operate B : the pattern to search for (regular expression) C : the new word to replace the found pattern with D : any flags to fine tune the behaviour 26 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  • 27. Introduction Getting started with vim Tasks Search and replace Configuration Search and replace Examples areas: % : the complete file ’<,’> : the selected area (empty) : the current line Example flags: c : confirm each substitution g : replace all occurrences on one line i : ignore the case for searching 27 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  • 28. Introduction Getting started with vim Tasks Search and replace Configuration ~/.vim* your configuration is stored in ~/.vimrc system-wide configuration is stored in /etc/vimrc your plugins, languages, . . . live in ~/.vim/ 28 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  • 29. Introduction Getting started with vim Tasks Search and replace Configuration The set-command To change your configuration at runtime, use the set-command. Examples: :set spell← to enable spell checking :set number← show line numbers :set syntax=<lang>← to highlight according to <lang> To unset an option, prepend it with no: :set nospell← :set nonumber← ... 29 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex
  • 30. Introduction Getting started with vim Tasks Search and replace Configuration References the vimtutor-command http://en.wikipedia.org/wiki/Vi http://en.wikipedia.org/wiki/Vim_(text_editor) https://users.cs.jmu.edu/bernstdh/web/common/ help/vim.php http://www.youtube.com/watch?v=SI8TeVMX8pk http://www.youtube.com/watch?v=V3ccIf-cfnQ 30 / 30 Bart Van Loon vim – Vi IMproved, a programmers tex