Vim สั่งได้ดั่งใจ #bcbk4

Preview:

Citation preview

Advanced

VimTips / Technique / Shortcuts

Settings / Scripts2013-09-22

Thai Pangsakulyanont@ BarCamp Bangkhen 4

Sunday, September 22, 13

Me

• Thai Pangsakulyanont

• Software and Knowledge Engineering Undergraduate Student,Kasetsart University

• @dtinth

• http://dt.in.th/

Sunday, September 22, 13

• http://bit.ly/bcbk4vim

Sunday, September 22, 13

Outline

• A Quick Demonstration

• Built-In Features

• Shortcut, Tips & Trick, Settings

• Vundle

• Plugins

• More Resources

Sunday, September 22, 13

A Quick Demonstration!

Sunday, September 22, 13

.vimrc Settings

Sunday, September 22, 13

Most Important

Don’t stay in INSERT mode

Sunday, September 22, 13

Disable Arrow Keysin Insert Mode

• inoremap <Up> <NOP>

• inoremap <Down> <NOP>

• inoremap <Left> <NOP>

• inoremap <Right> <NOP>

Sunday, September 22, 13

&

--NORMAL--

o O

• Begin a new line (below/above) the

cursor and insert text.

Open Below Open Above

Sunday, September 22, 13

&

--NORMAL--

i aInsert Append

Sunday, September 22, 13

&• Insert text before the first non-blank

in the line.

• Append text at the end of the line.

--NORMAL--

I AINSERT APPEND

Sunday, September 22, 13

--NORMAL--

• Search for pattern

Search

/Previous

NNext

n

Sunday, September 22, 13

• Repeat last change

--NORMAL--

.Repeat

Sunday, September 22, 13

--NORMAL-- and --VISUAL--

J

• Join multiple lines into 1 line.

Join

Sunday, September 22, 13

• Replace the character under the cursor

without entering the insert mode.

--NORMAL--

rReplace

Sunday, September 22, 13

&

• Add to the number.

• Subtract from the number.

--NORMAL--

^a ^xAdd Subtract

Sunday, September 22, 13

Completion

Sunday, September 22, 13

• Next match / previous match.

• Keyword Completion.

--INSERT--

&^n ^pNext Previous

Sunday, September 22, 13

• File Name Completion.

--INSERT--

^x ^f ^f ^fComplete File (next) (next)

Sunday, September 22, 13

• Omni Completion (context-sensitive).

--INSERT--

^x ^o ^o ^oComplete Omni (next) (next)

Sunday, September 22, 13

Text Objects

Sunday, September 22, 13

--NORMAL--

c d vChange Delete Visual

Sunday, September 22, 13

iw awi( a(i{ a{i[ a[i< a<i" a"i' a'it at

Sunday, September 22, 13

"icChange Inside "

--NORMAL--

Sunday, September 22, 13

cChange A "

"a

--NORMAL--

Sunday, September 22, 13

In Visual Mode...

Sunday, September 22, 13

--VISUAL--

cChange

• Puts the deleted text into

register.

• So you can paste later.

• Ex. Extract to Variable

Sunday, September 22, 13

Visual·Line Mode

Sunday, September 22, 13

VVisual

(Linewise)

--NORMAL--

Sunday, September 22, 13

--VISUAL·LINE--

<Outdent

>Indent

Sunday, September 22, 13

--VISUAL--

pPaste

• Replaces the selected text.

Sunday, September 22, 13

System Clipboard Register

Sunday, September 22, 13

--NORMAL--

pPaste

• Paste from Default (Internal) Register

Sunday, September 22, 13

--NORMAL--

pPaste

• Paste from System Clipboard

+System

ClipboardSelect

Register

"

Sunday, September 22, 13

More Shortcuts

Sunday, September 22, 13

--INSERT--

^hRemove Character

^wRemove Word

h is the 8th letter of the English alphabet.ASCII code 8 is for “Backspace”.

Sunday, September 22, 13

Vundle

Sunday, September 22, 13

VundleThe Plugin Manager for Vim

https://github.com/gmarik/vundle

Sunday, September 22, 13

Vim Plugins

Sunday, September 22, 13

Lokaltog/vim-easymotion

Sunday, September 22, 13

<Leader>

:let mapleader=”<key to use>”

• <Leader> is a key reserved for plugins.

• Default key is Backslash (\)

Sunday, September 22, 13

<Leader> <Leader> f

<Leader> <Leader> F

--NORMAL--

{char}

{char}

EasyMotion Find Character

Sunday, September 22, 13

kana/vim-arpeggio

Sunday, September 22, 13

Arpeggio inoremap fun functionArpeggio inoremap () ()<Left>

Sunday, September 22, 13

Arpeggio inoremap sd <Backspace>Arpeggio inoremap kl <Backspace>

Arpeggio nnoremap sdf ciwArpeggio nnoremap jkl ciw

Sunday, September 22, 13

kien/ctrlp.vim

Sunday, September 22, 13

scrooloose/syntastic

Sunday, September 22, 13

justincampbell/vim-eighties

Sunday, September 22, 13

tpope/vim-surround

Sunday, September 22, 13

scChange Surrounding " into '

" '

Sunday, September 22, 13

sdDelete Surrounding Tag

t

Sunday, September 22, 13

syWrap Inside Word

wi

<span class="sharp">

With <div class="x">

Sunday, September 22, 13

dtinth/vim-colors-dtinth256

Sunday, September 22, 13

ervandew/supertab

Sunday, September 22, 13

More Resources

Sunday, September 22, 13

• http://usevim.com/

A Vim Blog (← Recommended!)

• http://vim.wikia.com/

Vim Tips Wiki

• http://www.vim.org/scripts/

Official Script Repository

• http://vim-scripts.org/

Git Mirror of the above

Sunday, September 22, 13

Q/ASunday, September 22, 13

Thank You!

Sunday, September 22, 13