MyWackoSite: vim

https://wiki.ebal.gr     Version: 1 (09/29/2013 18:41)

vim


Hits : 5,659

Vim – a very simple tutorial



vim : Vi Improved


http://www.vim.org

top


Το Vim είναι o δημοφιλέστερος κειμενογράφος που υπάρχει.
Έαν από τα χαρακτηριστικά του είναι ότι υποστηρίζει καταστάσεις (modes).
Οι κυριότερες καταστάσεις είναι τρεις (3):


Για να μεταβούμε στην Edit Mode πατάμε το πλήκτρο Insert.
Για να μεταβούμε από την Edit Mode στην Command Mode πατάμε το πλήκτρο esc.
Για να μεταβούμε από την Command Mode στην Execute Mode πληκτρολογούμε την άνω & κάτω τελεία (:).

top

Commands


ZZ Αποθήκευση & Τερματισμος
:q Τερματισμός Vim 
:qa Τερματισμός Vim χωρίς καμία αποθήκευση
:q! Τερματισμος Vim και αγνόησε αλλαγές
:i Εισαγωγή στην κατάσταση κειμενογράφου
:e file_name ¶νοιγμα Αρχείου
:edit file_name ¶νοιγμα Αρχείου
:d Delete lines
:m Move lines

top

More Commands


:set nu  Εμφάνιση Γραμμών
:set nonu Μη εμφάνιση γραμμών
:noh No highlight
:syntax on  Εμφάνιση σύνταξης κώδικα
:! cmd  Εκτέλεση εντολής cmd 
:r! cmd  Eκτέλεση εντολής cmd και insert το output στο κείμενο
:%s :%s/ to_string_pou_theloume_na_allaksoume / to_string_pou_theloume_na_valoume /
:sp filename ¶νοιγμα αρχείου διαιρώντας το παράθυρο
i  Insert next letter
shift+i Insert previous letter
o  Insert on below line
shift +o Insert on above line
dd  Delete line
yy  Copy line
p  Paste
u  Undo
r  replace character
R  replace characters
m  Μαρκάρισμα γραμμής
'x Μετάβαση στην μαρκαρισμένη γραμμή
''ayy Copy test to buffer a [a-z]
''ap Paste a text buffer
dw  delete word
d$ delete from here to the end of the line

top

Vim Options


¶νοιγμα δύο (2) ή περισσοτέρων αρχείων σε οριζόντια διαχώριση:

HTML
vim -o file1 file2

top

¶νοιγμα δύο (2) ή περισσότερων αρχείων σε κάθετη διαχώριση:



¶νοιγμα και τοποθέτηση του κέρσορα στο τέλος ενός αρχείου:



¶νοιγμα και τοποθέτηση του κέρσορα σε συγκεκριμένη γραμμή ενός αρχείου:



¶νοιγμα και τοποθέτηση του κέρσορα στο αλφαρηθμητικό αναζήτησης ενός αρχείου:



¶νοιγμα αρχείου με κωδικό:
vim -x test
Enter encryption key: ****
Enter same key again: ****		


Και οτιδήποτε γράφουμε γίνεται encrypted.
> cat test
VimCrypt ~01!��		


top

vim usefull


Θέλουμε να τροποποιήσουμε ένα αλφαριθμητικό με ένα άλλο από την γραμμή m έως την γραμμή n:



Θέλουμε να προσθέσουμε ένα σχόλιο στην αρχή σε όλες τις γραμμές:



Θέλουμε να διαγράψουμε όλες τις κενές γραμμές από ένα αρχείο:



Θέλουμε να μεταφέρουμε 5 γραμμές στην αρχή :



Θέλουμε να διαγράψουμε όλες τις γραμμές από το σημείο που είμαστε μέχρι το τέλος του αρχείου:



Θέλουμε να ταξινομήσουμε ένα συγκεκριμένο αριθμό γραμμών :

Μεταβαίνουμε στην γραμμή και γράφουμε
:.,+162 sort		


top

vim tabs


Στην έκδοση 7 του vim, υπάρχει η δυνατότητα του tab.



Όταν θέλω να τρέξω μία εντολή σε όλα τα tabs γράφω:



εναλλακτικά:

vim testfile1
:tabe testfile2

[ctrl] + w (twice)

για να αλλάξω καρτέλα

Vim Map Commands


Disable the F1 (help) in vim:

:nmap <F1> <nop>		


Add a custom command to key shortcut:

:map <f1> :r! export -p LC_ALL=C; echo "\# ebal, `date`"<return>		

Vim Cheat Sheet


file:vimcheatsheet.gif

top

My vimrc


" ebal, Mon Feb 14 08:37:12 EET 2011
syntax on
set nu
set hlsearch

:map <f1> :r! echo "\# ebal, `date -R`"<return>

:setlocal spell spelllang=en_us		


top

multiple files


eg. vim file1 file2

go to the next file :

:bn

list opened files:

:ls

split them into horizontal split

:split file2

split them into vertical

:vs file2

move from one split to another

[ctrl] + w + right arrow
[ctrl] + w + left arrow

or

[ctrl] + w (twice)


top

Folds


:set foldmethod=expr
:set foldexpr=getline(v:lnum)=~\"\\#\"

:set foldmethod=expr
:set foldexpr=getline(v:lnum)=~\"\\#\"&&getline(v:lnum)=~'\\S'?'<1':1

zf --> manual fold

zi
zR

zo : fold open
zc:  fold close		


top

μη-ορατοί χαρακτήρες


Δείξε τους μη-ορατούς χαρακτήρες:

:set list		



Κρύψε τους μη-ορατούς χαρακτήρες:

:set list!		


top

Νέα καρτέλα


eg.

vim -p src/*.ml		


open a new tab

:tabe[dit] newfile		


Μετακίνηση μεταξύ των tabs: gt ή gT
Μετακίνηση ενός tab στο τέλος :tabmove

Αναζήτηση σε όλα τα tabs

:vimgrep pacman **		


top


tabs


tabstop

:set tabstop		


επιστρέφει τον αριθμό χαρακτήρων του tab

:set tabstop 16		


θέτει τον αριθμό χαρακτήρων του tab

expandtab

εάν ενεργοποιηθεί, προσθέτει spaces στο πλήθος ενός tab

indentation mode:

>
<		


shiftwidth

μπορείς να αλλάξεις το shiftwidth σε κάτι διαφορετικό από το tabstop

Προσθήκη tab χαρακτήρων σε γραμμές:

visual mode (select lines) & >
για προσθήκη tab χαρακτήρων

< για μείωση tab χαρακτήρων

softtabstop

δεν κατάλαβα τι είναι :(

top



macros


recordings of your typings to save you time and be awesome

eg. You want to remove any comments from your source code

:%s/^#/d

first you need to choose a macro name: c
c for comments

(escape mode)

type: q 
and after that: c
type your code:

:%s/^#/d

and after that type: q

You can see your macros with: reg
(registers)

:help reg

for more info

To run your macro: @c

and see the magic

top



file explorer


:Explore ~		


opens a new tab to your home dir for choosing a new file to edit.
x over an dir and the default file manager will popup up


top

file explorer


vim abbreviations

:h abbreviations

:iab teh the
:iabclear

:iabbrev teh the
:iab		


top