Sunday, December 07, 2008

VIM vs Notepad++

Ngoài 1 số điểm mà notepad-plus plus kết hợp plugins đuổi kịp VIM, vẫn còn một số ưu điểm không thể không nhắc đến của vim :


1/ Mở file lớn. (bạn thử mở 1 file > 100 MB bằng vim với Notepad++ coi sao)


2/ Xử lý nhiều cụm từ trong 1 file lớn (VD: thay thế vài ngàn từ bằng vim và Notepad++)


3/ Hỗ trợ highlight nhiều hơn (syntax on hoặc syntax enable), hiện nay Notepad++ đã được tăng nhiều nhưng vẫn chưa bằng vim (thử mở các file text như .conf, .cnf, .lst , .cnt , .*rc , ... )


4/ Customize màu sắc dễ hơn, adapt không chỉ 1 ngôn ngữ lập trình (colorscheme, set background, set foreground, set guifont, tự chỉnh các file .vim , ... )


5/ Customized macro: recording các thao tác , chẳng hạn bạn đang viết blog đến từ "CSS", muốn link Wiki chỉ bấm 1, hoặc 2 phím đã recorded thành macro thì chữ CSS đó đã trở thành <a href="http://en.wikipedia.org/wiki/CSS">CSS</a> ,


6/ Customized hotkey: nếu macro không quá phức tạp mà lại hay dùng thì thường người ta ánh xạ hotkey, hầu như không có giới hạn nào cả. Chẳng hạn nếu muốn thì Ctrl+B có thể là cặp thẻ (cho HTML) , Ctrl+W rồi phím b là cặp thẻ [b] (cho forum BBcode) .


7/ Thao tác trên từng word, dòng, ..., di chuyển... bằng các phím cực nhanh. Chẳng hạn file có 1234 dòng, bạn muốn cut 543 dòng đầu tiên đem xuống cuối file rồi paste lại thì chỉ cần chuyển qua Normal mode rồi bấm (nhắm mắt luôn) :
gg543ddGp
hoặc gõ tương ứng các lệnh đó rồi Enter cũng được


8/ Viết script: vim có hỗ trợ cả các cú pháp if, else, func... Chẳng hạn có thể viết 1 function rồi map cho "Ctrl+/" : khi gặp file java, C, C++,... thì comment out cả đoạn bằng " // " , khi gặp file Perl, Shell,... thì comment out bằng " # " , gặp hợp ngữ thì comment bằng " ; " khi gặp file VIM thì comment out bằng " " " , ...


9/ Kích hoạt shell command: bằng dấu "!" ngay sau dấu ":" , chẳng hạn
:!ps
Một ví dụ tổng hợp: chẳng hạn dùng để map hotkey (kết hợp shellscript & perl) để mở Xterm tra dữ liệu từ điển Hồ Ngọc Đức trong vim console bằng phím F9 (gần giống kiểu click & see)


10/ "DIFF" 2 hoặc 3 file cùng lúc bằng lệnh
$ vimdiff copyBTL1.txt copyBTL2.txt
hoặc
$ vim -d copyBTL2.txt copyBTL1.txt copyBTL3.txt


... more to come (vimrc, multiple buffer, multiple session, multiple split, vimshell, external edit ... ), làm biếng nghĩ tiếp quá



have fun geeks !

No comments: