diff options
| -rw-r--r-- | vim.html.markdown | 225 | 
1 files changed, 119 insertions, 106 deletions
| diff --git a/vim.html.markdown b/vim.html.markdown index a72db158..f5be9b0d 100644 --- a/vim.html.markdown +++ b/vim.html.markdown @@ -3,6 +3,7 @@ category: tool  tool: vim  contributors:      - ["RadhikaG", "https://github.com/RadhikaG"] +    - ["kaymmm", "https://github.com/kaymmm"]  filename: LearnVim.txt  --- @@ -19,70 +20,71 @@ specific points in the file, and for fast editing.  ## Basics of navigating Vim  ``` -    vim <filename>   # Open <filename> in vim -    :help <topic>    # Open up built-in help docs about <topic> if any exists -    :q               # Quit vim -    :w               # Save current file -    :wq              # Save file and quit vim -    ZZ               # Save file and quit vim -    :q!              # Quit vim without saving file -                     # ! *forces* :q to execute, hence quiting vim without saving -    ZQ               # Quit vim without saving file -    :x               # Save file and quit vim, shorter version of :wq - -    u                # Undo -    CTRL+R           # Redo - -    h                # Move left one character -    j                # Move down one line -    k                # Move up one line -    l                # Move right one character - -    Ctrl+B 	         # Move back one full screen -    Ctrl+F 	         # Move forward one full screen -    Ctrl+D 	         # Move forward 1/2 a screen -    Ctrl+U           # Move back 1/2 a screen +    vim <filename>    # Open <filename> in vim +    :help <topic>     # Open up built-in help docs about <topic> if any exists +    :q                # Quit vim +    :w                # Save current file +    :wq               # Save file and quit vim +    ZZ                # Save file and quit vim +    :q!               # Quit vim without saving file +                      # ! *forces* :q to execute, hence quiting vim without saving +    ZQ                # Quit vim without saving file +    :x                # Save file and quit vim, shorter version of :wq + +    u                 # Undo +    CTRL+R            # Redo + +    h                 # Move left one character +    j                 # Move down one line +    k                 # Move up one line +    l                 # Move right one character + +    Ctrl+B            # Move back one full screen +    Ctrl+F            # Move forward one full screen +    Ctrl+D            # Move forward 1/2 a screen +    Ctrl+U            # Move back 1/2 a screen      # Moving within the line -    0                # Move to beginning of line -    $                # Move to end of line -    ^                # Move to first non-blank character in line +    0                 # Move to beginning of line +    $                 # Move to end of line +    ^                 # Move to first non-blank character in line      # Searching in the text -    /word            # Highlights all occurrences of word after cursor -    ?word            # Highlights all occurrences of word before cursor -    n                # Moves cursor to next occurrence of word after search -    N                # Moves cursor to previous occurrence of word +    /word             # Highlights all occurrences of word after cursor +    ?word             # Highlights all occurrences of word before cursor +    n                 # Moves cursor to next occurrence of word after search +    N                 # Moves cursor to previous occurrence of word -    :%s/foo/bar/g    # Change 'foo' to 'bar' on every line in the file -    :s/foo/bar/g     # Change 'foo' to 'bar' on the current line -    :%s/\n/\r/g      # Replace new line characters with new line characters +    :%s/foo/bar/g     # Change 'foo' to 'bar' on every line in the file +    :s/foo/bar/g      # Change 'foo' to 'bar' on the current line +    :%s/\n/\r/g       # Replace new line characters with new line characters +    :'<,'>s/foo/bar/g # Change 'foo' to 'bar on every line in the current visual selection      # Jumping to characters -    f<character>     # Jump forward and land on <character> -    t<character>     # Jump forward and land right before <character> +    f<character>      # Jump forward and land on <character> +    t<character>      # Jump forward and land right before <character>      # For example, -    f<               # Jump forward and land on < -    t<               # Jump forward and land right before < +    f<                # Jump forward and land on < +    t<                # Jump forward and land right before <      # Moving by word -    w                # Move forward by one word -    b                # Move back by one word -    e                # Move to end of current word +    w                 # Move forward by one word +    b                 # Move back by one word +    e                 # Move to end of current word      # Other characters for moving around -    gg               # Go to the top of the file -    G                # Go to the bottom of the file -    :NUM             # Go to line number NUM (NUM is any number) -    H                # Move to the top of the screen -    M                # Move to the middle of the screen -    L                # Move to the bottom of the screen +    gg                # Go to the top of the file +    G                 # Go to the bottom of the file +    :NUM              # Go to line number NUM (NUM is any number) +    H                 # Move to the top of the screen +    M                 # Move to the middle of the screen +    L                 # Move to the bottom of the screen  ```  ## Help docs: @@ -104,28 +106,28 @@ Vim is based on the concept on **modes**.  - Ex Mode      - used to drop down to the bottom with the ':' prompt to enter commands  ``` -    i                # Puts vim into insert mode, before the cursor position -    a                # Puts vim into insert mode, after the cursor position -    v                # Puts vim into visual mode -    :                # Puts vim into ex mode -    <esc>            # 'Escapes' from whichever mode you're in, into Command mode +    i                 # Puts vim into insert mode, before the cursor position +    a                 # Puts vim into insert mode, after the cursor position +    v                 # Puts vim into visual mode +    :                 # Puts vim into ex mode +    <esc>             # 'Escapes' from whichever mode you're in, into Command mode      # Copying and pasting text -                     # Operations use the vim register by default -                     # Think of it as vim's private clipboard +                      # Operations use the vim register by default +                      # Think of it as vim's private clipboard -                     # Yank ~ copy text into vim register -    y                # Yank whatever is selected -    yy               # Yank the current line +                      # Yank ~ copy text into vim register +    y                 # Yank whatever is selected +    yy                # Yank the current line -                     # Delete ~ yank text and delete from file -    d                # Delete whatever is selected -    dd               # Delete the current line +                      # Delete ~ yank text and delete from file +    d                 # Delete whatever is selected +    dd                # Delete the current line -    p                # Paste text in vim register after the current cursor position -    P                # Paste text in vim register before the current cursor position +    p                 # Paste text in vim register after the current cursor position +    P                 # Paste text in vim register before the current cursor position -    x                # Delete character under current cursor position +    x                 # Delete character under current cursor position  ```  ## The 'Grammar' of vim @@ -142,64 +144,75 @@ A few important examples of 'Verbs', 'Modifiers', and 'Nouns':  ```      # 'Verbs' -    d                # Delete -    c                # Change -    y                # Yank (copy) -    v                # Visually select +    d                 # Delete +    c                 # Change +    y                 # Yank (copy) +    v                 # Visually select      # 'Modifiers' -    i                # Inside -    a                # Around -    NUM              # Number (NUM is any number) -    f                # Searches for something and lands on it -    t                # Searches for something and stops before it -    /                # Finds a string from cursor onwards -    ?                # Finds a string before cursor +    i                 # Inside +    a                 # Around +    NUM               # Number (NUM is any number) +    f                 # Searches for something and lands on it +    t                 # Searches for something and stops before it +    /                 # Finds a string from cursor onwards +    ?                 # Finds a string before cursor      # 'Nouns' -    w                # Word -    s                # Sentence -    p                # Paragraph -    b                # Block +    w                 # Word +    s                 # Sentence +    p                 # Paragraph +    b                 # Block      # Sample 'sentences' or commands -    d2w              # Delete 2 words -    cis              # Change inside sentence -    yip              # Yank inside paragraph (copy the para you're in) -    ct<              # Change to open bracket -                     # Change the text from where you are to the next open bracket -    d$               # Delete till end of line +    d2w               # Delete 2 words +    cis               # Change inside sentence +    yip               # Yank inside paragraph (copy the para you're in) +    ct<               # Change to open bracket +                      # Change the text from where you are to the next open bracket +    d$                # Delete till end of line  ```  ## Some shortcuts and tricks          <!--TODO: Add more!-->  ``` -    >                # Indent selection by one block -    <                # Dedent selection by one block -    :earlier 15m     # Reverts the document back to how it was 15 minutes ago -    :later 15m       # Reverse above command -    ddp              # Swap position of consecutive lines, dd then p -    .                # Repeat previous action -    :w !sudo tee %   # Save the current file as root -    :set syntax=c    # Set syntax highlighting to 'c' -    :sort            # Sort all lines -    :sort!           # Sort all lines in reverse -    :sort u          # Sort all lines and remove duplicates -    ~                # Toggle letter case of selected text -    u                # Selected text to lower case -    U                # Selected text to upper case -    J                # Join the current line with the next line +    >                 # Indent selection by one block +    <                 # Dedent selection by one block +    :earlier 15m      # Reverts the document back to how it was 15 minutes ago +    :later 15m        # Reverse above command +    ddp               # Swap position of consecutive lines, dd then p +    .                 # Repeat previous action +    :w !sudo tee %    # Save the current file as root +    :set syntax=c     # Set syntax highlighting to 'c' +    :sort             # Sort all lines +    :sort!            # Sort all lines in reverse +    :sort u           # Sort all lines and remove duplicates +    ~                 # Toggle letter case of selected text +    u                 # Selected text to lower case +    U                 # Selected text to upper case +    J                 # Join the current line with the next line      # Fold text -    zf               # Create fold from selected text -    zo               # Open current fold -    zc               # Close current fold -    zR               # Open all folds -    zM               # Close all folds +    zf                # Create fold from selected text +    zd                # Delete fold on the current line +    zD                # Recursively delete nested or visually selected folds +    zE                # Eliminate all folds in the window +    zo                # Open current fold +    zO                # Recursively open nested or visually selected folds +    zc                # Close current fold +    zC                # Recursively close nested or visually selected folds +    zR                # Open all folds +    zM                # Close all folds +    za                # Toggle open/close current fold +    zA                # Recursively toggle open/close nested fold +    [z                # Move to the start of the current fold +    ]z                # Move to the end of the current fold +    zj                # Move to the start of the next fold +    zk                # Move to the end of the previous fold  ```  ## Macros @@ -210,9 +223,9 @@ you use, until you stop recording. On invoking a macro, it applies the exact  same sequence of actions and commands again on the text selection.  ``` -    qa               # Start recording a macro named 'a' -    q                # Stop recording -    @a               # Play back the macro +    qa                # Start recording a macro named 'a' +    q                 # Stop recording +    @a                # Play back the macro  ```  ### Configuring ~/.vimrc | 
