Bắt đầu chuyển sang dùng Vim làm editor chính một cách nghiêm túc sau nhiều lần thử, bỏ cuộc và quay trở về Sublime Text.
Còn về nguyên nhân bỏ cuộc là vì không quen với VIM được, do có nhiều thứ quá khác với Sublime Text, chính xác là trên Sublime Text có mà VIM lại không có, nên lần này mình sẽ setup toàn bộ những thứ bên Sublime Text qua VIM hết.
Vì sao phải dùng VIM?
- Hầu hết thời gian mình đều làm việc trong terminal nên chuyển editor sang VIM luôn cho tiện.
- Việc di chuyển trong VIM nhanh và thuận tiện hơn so với các editor/IDE khác (dĩ nhiên nếu không dùng VIM mode).
- Hạn chế sử dụng chuột để tăng tốc độ thao tác.
- Nhiều thứ để custom phù hợp với nhu cầu, khả năng tùy biến cao.
- Làm màu, trông có vẻ giống hắc cơ.
- Động lực để chuyển sang bàn phím 60% để mang đi mang về cho tiện ._.
Cài đặt
Tuỳ theo nhu cầu bạn có thể chọn Vim, NeoVim, hoặc MacVim tuỳ thích.
Thế mình chọn cái nào à? Mình chọn NeoVim nhé, vì một tính năng rất mạnh mà NeoVim đã support sẳn TrueColour, à ờ, tóm lại cũng là màu mè thôi, cho nó đẹp.
Nếu bạn là newbie thì mình khuyến khích dùng Vim nhé.
Link download & hướng dẫn cài đặt bên dưới nhé:
Sử dụng Vim
Mở terminal lên và gõ vim để bắt đầu nào (Windows thì bạn click vào cái icon sau khi cài đặt của nó nhé).
Các vấn đề cơ bản
Mode
Vim có tổng cộng 6 modes hoạt động normal, insert, visual, select, command-line, Ex-mode.
Mặc định khi mở Vim lên sẽ là mode normal.
Trong đó 3 modes mình thường được sử dụng nhất là:
- normal: Dùng để di chuyển và thao tác trong đoạn text, và sẽ là mode được back lại khi ấn ESC ở mode khác.
- insert: Như tên gọi, để thêm text mới vào.
- visual: tương tự như normal nhưng cho phép bôi đen (select) text để thực hiện các thao tác với đoạn bôi đen đó.
Một vài phím và lệnh cơ bản
- […]
- Sau khi viết một đoạn và thấy quá lười nên thôi mấy bạn xem bài của @huytd ở đây nha, hình ảnh đẹp và rõ ràng dễ hiểu Làm quen VIM trong 5 phút
Học VIM nhanh hơn, vui hơn, thông minh hơn
- Đầu tiên phải kể đến của nhà trồng được: Tutor. Mặc định trong Vim có một hệ thống Tutorial khá xịn, tại mode normal bạn gõ :Tutor và làm theo Tutorial nhé, sau khoảng 30′ bạn có thể thoải mái thao tác trong Vim.
- Vừa học vừa chơi: VIM Advantures Một game trên nền web giúp bạn vừa học vừa chơi, di chuyển thao tác bằng các phím trong VIM. Bạn có thể chơi thử Level 1 rồi quyết định có mua license hay không (không free đâu nhé T_T)
- OpenVim một website giúp bạn tập thao tác VIM online qua từng bài học, thực hành thẳng trên website.
- Learn Vimscripts the Hard Way một ebook hướng dẫn các bạn nâng trình độ dùng VIM lên một tầm cao mới
Di cư từ Sublime Text sang VIM
Lần đầu tiên với VIM luôn là trải nghiệm chán phèo, một màn hình đen thui trống huơ trống hoác, chả biết làm gì với nó.
Bình tĩnh nhé, hầu hết các tính năng ở Sublime Text đều có thực hiện giống hoặc tốt hơn trong VIM nhờ vào hệ thống plugin đồ sộ cùng hệ thống có sẳn cho phép bạn tinh chỉnh nhiều thứ theo ý mình.
Và đều được định nghĩa trong file .vimrc (thường nằm ở ~/.vimrc)
Plugin management
Có thể cài đặt Plugin trong VIM trực tiếp bằng cách pull code từ github về và chép vào thư mục ~/.vim/bundle. Tuy nhiên, cách tốt nhất vẫn là dùng hệ thống quản lý Plugin như Vundle, Pathegon, Vim-Plug, Neo-Bundle
Cá nhân mình dùng Vim-Plug (trước đó dùng Vundle) vì Vundle hiện tại đã không còn maintain, bên cạnh đó Vim-Plug cũng đơn giản, dễ dùng, load, update plugins cũng nhanh hơn hẳn.
- Cài đặt: https://github.com/junegunn/vim-plug#installation
- Cách dùng: https://github.com/junegunn/vim-plug#usage
- Thêm các plugins cần dùng trong file .vimrc
- Lưu lại và reload file .vimrc (có thể reload nhanh bằng command :source % mà không cần khởi động lại VIM)
- :PlugInstall để cài đặt plugins
- Ngoài ra :PlugUpdate để update toàn bộ plugins, hoặc :PlugClean để clean các plugins nào không còn nằm trong .vimrc, có thể xem thêm ở đây
Dot file, .vimrc, config cho vim
Có rất nhiều người share config trong VIM trên github (và các dotfiles khác như tmux, zsh) mà các bạn có thể tham khảo để dùng cho bản thân, VD như vimrc, ThoughtBot, dotfiles
Bạn có thể lên đây cóp nhặt các thứ cần thiết cho mình và ném nó vào file .vimrc, phần sau mình sẽ giới thiệu một số thứ thông dụng.
Tuy nhiên:
Don’t put any lines in your vimrc that you don’t understand.
Các vấn đề thường gặp khi bắt đầu dùng VIM
Các phần sau bạn có thể thử nhanh qua command : hoặc sửa trong .vimrc rồi reload lại VIM. Có thể check nhanh giá trị của biến bằng command :set <variable>?, vd :set nu?
- Dùng chuột, hoàn toàn có thể:
1
2
3
4
5
|
if has ( 'mouse' )
set mouse = a
endif
|
Copy từ VIM ra ngoài Clipboard, mặc định VIM chỉ lưu trong Register (xem thêm) lúc bạn yank:
1
2
3
|
set clipboard = unnamedplus
|
Hiện line number
1
2
3
|
set nu
|
Tự động cập nhật khi file thay đổi (bởi chương trình khác)
1
2
3
4
|
set autoread
set autowrite
|
Tự động indent
1
2
3
4
|
set autoindent
set si " smart indent
|
Bật syntax
1
2
3
|
syntax on
|
Tắt các thể loại files backup, swap, khá là annoy và không cần thiết vì mình đã dùng git rồi
1
2
3
4
5
6
7
8
9
|
set nobackup
set nowb
set noswapfile
set backupdir = ~ / tmp , / tmp
set backupcopy = yes
set backupskip = / tmp / * , $ TMPDIR / * , $ TMP / * , $ TEMP / *
set directory = / tmp
|
Map key
Để có thể tận dụng hết tất cả sức mạnh của VIM cũng như thao tác một cách nhanh nhất thì không thể nào bỏ qua tính năng map – cho phép bạn sử dụng tổ hợp phím nhanh nhất, bạn có thể xem thêm ở đây
Ví dụ mình thường map một số phím như
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
" Map leader key
let mapleader = " , " " map leader key to ,
let g : mapleader = ","
" Fast saving
nmap <leader>w :w!<cr>
" Map Esc to jj
: imap jj < Esc >
" Hide highlight
map <silent> <leader><cr> :noh<cr>
" Move between windows
map < C - j > < C - W > j
map < C - k > < C - W > k
map < C - l > < C - W > l
map < C - h > < C - W > h
|
Nói chung nếu những phím/tổ hợp phím/command nào thường xuyên sử dụng, bạn hoàn toàn có thể map lại thành phím khác để rút ngắn thời gian thao tác của mình.
Nhưng vẫn chưa giống SublimeText?
Q: VIM cùi bắp, không có auto complete này.
A: Vim có nhiều Plugin support auto-complete như YouCompleteMe, neocomplete
Q: Làm thế nào để Split Screen đây?
A: Dùng command :split & vsplit để chia màn hình ngang và dọc. Xem thêm để làm việc nuột hơn nà.
Q: Làm sao để di chuyển giữa các panes (màn hình)?
A: Dùng chuột click cũng được, hoặc tốt nhất dùng tổ hợp phím <C-W>j, <C-W>k, <C-W>l, <C-W>h. <C> ở đây là phím Ctrl.
Q: VIM có SideBar folders không?
A: Có plugin support nhé NERDTree
Q: Thêm/xóa file/thư mực như thế nào nhỉ, phải switch ra Terminal à?
A: Không cần phải ra terminal đâu, ở NERDTree bạn chỉ việc ấn phím m tại node cần thao tác, một menu sẽ hiện ra cho bạn chọn lựa
Q: Vậy còn Mini map?
A: Yup, Minimap, nhưng cá nhân mình nghĩ dùng Tagbar sẽ tiện dụng hơn.
Minimap:
Tagbar:
Q: Mình hay dùng Mutitple Selection.
A: Xem nào, Multiple Selection có nhiều thứ, ta đi qua từng cái nhé:
- Thêm một hàng: Mặc định ở Windows là Ctrl+Alt+Up & Ctrl+Alt+Down (OS X: Ctrl+Shift+Up & Ctrl+Shift+Down).
A: Đối với VIM, khi ở mode Normal có thể ấn o để thêm một hàng phía dưới và O để thêm phía trên và sau đó sẽ switch sang mode Insert luôn để bạn có thể bắt đầu gõ. Ngoài ra bạn có thể gõ 5o<Esc> để thêm nhanh 5 hàng, tính năng repeat tiện lợi của VIM. - Chọn, sửa nhanh nhiều vị trí: Ctrl+d hoặc Command+d
A: VIM thì mình dùng Plugin vim-multiple-cursors nhé, ngoài chức năng như Sublime Text bạn còn có thể search được bằng cả Regex
3. Select all bằng Alt+F3 (Windows+Linux) hoặc Ctrl+Command+g trên OS X?
A: Vẫn dùng Plugin bên trên nha, bạn xem trong wiki để tìm hiểu thêm.
Q: Còn tab thì sao?
A: Hiển nhiên rồi, ngoài ra VIM còn có thể một khái niệm nữa là Buffer, xem thêm tab ở đây và buffer ở đây
Q: Navigation bằng Ctrl + P thì sao, siêu tiện luôn
A: VIM có nhiều Plugin phục vụ cho việc này, bạn có thể dùng hàng Việt Nam chất lượng cao CtrlP hoặc dùng Fzf
Q: Search một từ trong nhiều file? Ví dụ seach chữ function trong một project có nhiều thư mục, Sublime Text thì click phải vào Folder rồi search, còn VIM thì sao, đâu có click phải vào NERDTree được?
A: VIM bạn có thể search bằng built-in của VIM là :grep, :lgrep, :vimgrep, :lvimgrep http://vim.wikia.com/wiki/Find_in_files_within_Vim, cá nhân mình dùng ack.vim kết hợp cùng the_silver_searcher
Q: Ops, không ấn Ctrl + / để comment code như các IDE khác à?
A: Để comment code bạn cần dùng Plugin NERD Commenter và sau đó có thể map phím Ctrl + / để execute lệnh comment
Q: Các tổ hợp phím tắt thì sao nhỉ? Ví dụ như mình muốn copy nhanh toàn bộ code trong một tag hoặc function?
A: Ở mode Normal gõ yip – copy bên trong tag hoặc yap copy cả tag, ngooài ra có rất nhiều phím tắt khác, để thao tác nhanh nhất bận nên tham khảo vim cheatsheet.
Những phần bên trên chỉ là phần nhỏ thôi, bạn có thể xem thêm trong :help hoặc tự map các tổ hợp phím tắt riêng cho mình giúp tăng tốc độ làm việc.
Shock văn hóa, quá nhiều thứ để nhớ, thôi nghỉ, không VIM nữa
Ban đầu mình cũng không thể chuyển sang VIM ngay được, không thể nào thao tác quen được. Nếu quyết định chuyển từ từ sang, vẫn dùng Sublime Text nhưng hạn chế không dùng đến các phím arrow và pageUp/pageDown thay vào đó là dùng các phím tắt trong VIM
- Đầu tiên mình cài thêm Plugin vào trong Sublime Text để làm quen dần thao tác di chuyển Vintage(ST2) hoặc Vintagous(ST3)
- Cài thêm Vimium vào Chrome luôn cho ngầu. Install xong thì ấn ? để xem danh sách phím tắt nhé.
Rất nhanh và tiện, hoàn toàn thao tác bằng phím, không rờ tới chuột.
Tiếp theo thì làm gì?
- Tùy theo ngôn ngữ mà bạn đang dùng mà bạn có thể cài thêm cái plugin hổ trợ để viết code nhanh hơn, tốt hơn, ít bug hơn.
- Nếu chức năng nào đó mà bạn quen dùng nhưng không có hãy mạnh dạn tùy biến vimrc hoặc Google thử, hầu hết sẽ có thứ bạn cần.
- Sao khi đã thao tác nhanh rồi thì việc tiếp theo là đi… khè mấy đứa khác thôi
Chúc các bạn may mắn.
- Quản lý giao vận thông minh
- Phần mềm quản lý xe thường có những tính năng gì?
- Ứng dụng quản lý vận tải trên smartphone
- SGO Giải pháp thông minh cho các công ty vận chuyển, logistics thuê ngoài
- Tra cứu thông tin tàu thuyền, lịch xuất cảng của từng tàu
- Ứng dụng quản lý garage trên smartphone và tablet
- Phần mềm CRM (phần mềm quản lý khách hàng) cho lĩnh vực vận tải, hậu cần thường gồm những gì?
- Giao vận, Logistic
- Lời giải cho xe trống chiều về – vấn đề nan giải của ngành vận tải Việt Nam
- Bán vé máy bay thông qua smartphone và tablet, smart TV
- Hệ thống chấm công từ xa thông minh qua vệ tinh STracking
- Mua vé xe, đặt vé xe trên smartphone, smart TV
- Phần mềm quản lý cho thuê xe ô tô thường có những tính năng gì?
- Điều hành hãng xe công nghệ, ứng dụng đặt xe trên smartphone tương tự Uber, Grab,...
- Tra cứu tàu biển
- Hệ thống điều hành, tìm gọi và quản lý xe sử dụng công nghệ mới
- Quản lý phương tiện cá nhân trên smartphone
- Hệ thống quản lý vận tải ( S-TMS ) thông minh
- Phân hệ Quản lý Đội xe (Fleet Management) trong một hệ thống ERP thường có gì?
- Tính năng cơ bản của một hệ thống giám sát hành trình, hộp đen và ứng dụng điều hành trong vận tải
- Tra cứu thông tin đăng kiểm cơ giới
Có thể bạn chưa biết:
TUYỂN THỰC TẬP REACT NATIVE
* Trang bị kỹ năng về JS, lập trình hybrid app, sử dụng những công cụ hỗ trợ (VScode, github, sourcetree, ...)
* Thành quả mong muốn là các bạn tham gia sẽ có được kỹ năng lập trình hybrid app
Biểu mẫu đăng ký training tại đây >> http://bit.ly/2NK9YWd
TEAM MOBILE APPS - CTY DVMS
Có thể bạn quan tâm:
Điều hành hãng xe công nghệ, ứng dụng đặt xe trên smartphone tương tự Uber, Grab,...
Bạn cần xây dựng ứng dụng tìm và đặt xe, phương tiện giao thông... như Uber, Grab ?
DVMS đã có kinh nghiệm thực tế triển khai các hệ thống quản lý điều hành và đặt xe ... trên smartphone cho khách hàng trong và ngoài nước từ 2013 tới nay.
Các hệ thống app mà chúng tôi phát triển đều sử dụng native app cho từng hệ điều hành smartphone ( iOS , Android, Blackberry, Windows Phone ... ) và các thuật toán riêng của DVMS nghiên cứu phát triển vì vậy được khách hàng đánh giá cao về độ ổn định, bảo mật và tốc độ rất tốt, chính xác...
Xem mô tả và link download tại đây >>
MẠNG XÃ HỘI ĐỊA ĐIỂM | Tư vấn, xây dựng, chuyển giao & đồng hành
Tự động nhắc bảo dưỡng xe, thay nhớt... trên điện thoại và nhiều tiện ích khác cho người lái xe ô tô và xe máy.
Driver Plus cho phép bạn cài đặt để điện thoại hoặc máy tính bảng nhắc nhở bạn sắp tới ngày cần bảo dưỡng xe, sắp phải thay nhớt...
Quản lý mọi vấn đề liên quan tới xe của bạn, như thông tin ngày mua, số xe, loại xe, lịch sử thay nhớt, đổ xăng, nơi thay nhớt, nơi đổ xăng...
Chỉ cần mở Driver Plus lên là bạn dễ dàng Tìm nơi sửa xe, garage, tìm đại lý chính hãng gần nơi bạn đứng nhất. ứng dụng sẽ tự tìm theo hãng xe mà bạn đang đi. Ngoài ra bạn cũng có thể dùng Driver Plus để tìm cây xăng, trụ ATM, nơi đang có khuyễn mãi giảm giá... xung quanh khu vực bạn đang đứng...
Driver Plus giúp bạn ghi lại toàn bộ các lần đổ xăng , thay nhớt, thay và sửa chữa linh kiện xe. các thông tin như nơi thực hiện những việc đó, thời gian, chi phí... giúp bạn thống kê lại toàn bộ chi phí cho xe của bạn. phần thống kê có thể xuất ra file excel dạng .csv để bạn xem trên máy tính hoặc các thiết bị khác.
Driver Plus xuất bản phiên bản đầu tiên lên Google Play từ 2014.
Cài đặt ứng dụng và sử dụng miễn phí, an toàn khi sử dụng trên Google Play, tại đây >>
hoặc: Tải file APK tại đây >> hoặc cài qua mã QRCODE dưới
Website: http://driverplus.giaiphapgiaothong.com
Fanpage: https://www.facebook.com/pg/DriverPlus.GiaiPhapGiaoThong
* Ứng dụng của chúng tôi hoàn toàn miễn phí, chạy offline hoặc online, trên ứng dụng chỉ có banner quảng cáo của Google. Chúng tôi không thu thập dữ liệu người dùng, không cài cắm các phần mềm độc hại, không gây tốn pin,...
Có thể bạn quan tâm:
- Ứng dụng quản lý vận tải trên smartphone
- SChat là lựa chọn tuyệt vời nhất để trò chuyện và chăm sóc khách hàng của bạn
- Kinh doanh vé xe, đặt vé xe, vé máy bay trên smartphone, Smart TV, Mạng xã hội
- Chăm sóc khách hàng tại bệnh viện, phòng khám
- Phòng khám, bệnh viện thông minh
- Hệ thống catalog và brochre thông minh trên smartphone và tablet
- Tìm bất động sản, tìm nhà đất, tìm phòng theo mô hình uber trên smartphone
- Ứng dụng bán hàng trên smartphone, smart TV, mạng xã hội,...
- Nhà thông minh, tích hợp vi mạch
- SGo không còn xe trống chiều về
- Phần mềm CRM (phần mềm quản lý khách hàng) cho lĩnh vực vận tải, hậu cần thường gồm những gì?
- Hệ thống đánh giá thông minh trên smartphone và tablet
- Đặt món dễ dàng
- Ứng dụng smartphone và tablet cho ngành du lịch, travel, team building
- Ứng dụng công nghệ vào giáo dục (Edu Tech)
- Quản lý cửa hàng, ki ốt trên smartphone và tablet
- Chat, nhắn tin, gọi điện, đàm thoại
- App giúp việc và dịch vụ tại nhà, Tư vấn, xây dựng, chuyển giao, đồng hành cùng quý vị triển khai
- Ứng dụng quản lý garage trên smartphone và tablet
- Giải pháp Blockchain và câu chuyện minh bạch hóa tiền công đức
- Phát triển ứng dụng mobile trên sàn bất động sản, mạng xã hội BĐS, tìm BĐS theo mô hình uber
- App chăm sóc thú cưng, dịch vụ thú y
- Ứng dụng mobile để marketing và phân phối rượu vang
- Ứng dụng Smartphone cho thể dục & thể thao
Bằng cách đăng ký kênh và chia sẻ bài, bạn đã cùng DVMS chia sẻ những điều hữu ích