mấy ngày trước, tôi đã viết bài hướng dẫn cấu hình Emacs, trong bài viết này tôi sẽ giới thiệu một môi trường phát triển đang phát triển Python nữa. That main is Vim. Vim rất phổ biến, nhanh, nhẹ và không bao giờ bị crash. Và nó có thể làm được mọi thứ
Có thể cấu hình Vim với người bắt đầu khá khó khăn, tuy nhiên, bạn đừng lo. Trong bài viết này, tôi sẽ chỉ cho bạn cách cấu hình Vim để biến nó thành một môi trường đầy sức mạnh cho việc phát triển Python
Trong bài viết này, tôi mặc định bạn đã biết cách sử dụng Vim về cơ bản. Nếu chưa các bạn có thể tham khảo các hướng dẫn ở đây hay ở đây. Hãy tìm hiểu một chút về cách sử dụng Vim và một số lệnh của nó trước khi chúng ta bắt đầu
Cài đặt
Bởi vì Vim đã được cài đặt sẵn ở rất nhiều hệ điều hành *nix, nên trước hết, hãy kiểm tra xem nó đã được cài đặt chưa
Nếu Vim đã được cài đặt rồi thì lệnh trên sẽ cho kết quả như dưới đây
VIM - Vi IMproved 7.4 [2013 Aug 10, compiled Jan 2 2014 19:39:47]
Included patches: 1-52
Modified by pkg-vim-maintainers@lists.alioth.debian.org
Compiled by buildd@
Huge version with GTK2-GNOME GUI. Features included [+] or not [-]:
+acl +farsi +mouse_netterm +syntax
+arabic +file_in_path +mouse_sgr +tag_binary
+autocmd +find_in_path -mouse_sysmouse +tag_old_static
+balloon_eval +float +mouse_urxvt -tag_any_white
+browse +folding +mouse_xterm +tcl
++builtin_terms -footer +multi_byte +terminfo
+byte_offset +fork[] +multi_lang +termresponse
+cindent +gettext -mzscheme +textobjects
+clientserver -hangul_input +netbeans_intg +title
+clipboard +iconv +path_extra +toolbar
+cmdline_compl +insert_expand +perl +user_commands
+cmdline_hist +jumplist +persistent_undo +vertsplit
+cmdline_info +keymap +postscript +virtualedit
+comments +langmap +printer +visual
+conceal +libcall +profile +visualextra
+cryptv +linebreak +python +viminfo
+cscope +lispindent -python3 +vreplace
+cursorbind +listcmds +quickfix +wildignore
+cursorshape +localmap +reltime +wildmenu
+dialog_con_gui +lua +rightleft +windows
+diff +menu +ruby +writebackup
+digraphs +mksession +scrollbind +X11
+dnd +modify_fname +signs -xfontset
-ebcdic +mouse +smartindent +xim
+emacs_tags +mouseshape -sniff +xsmp_interact
+eval +mouse_dec +startuptime +xterm_clipboard
+ex_extra +mouse_gpm +statusline -xterm_save
+extra_search -mouse_jsbterm -sun_workshop +xpm
system vimrc file: "$VIM/vimrc"
user vimrc file: "$HOME/.vimrc"
2nd user vimrc file: "~/.vim/vimrc"
user exrc file: "$HOME/.exrc"
system gvimrc file: "$VIM/gvimrc"
user gvimrc file: "$HOME/.gvimrc"
2nd user gvimrc file: "~/.vim/gvimrc"
system menu file: "$VIMRUNTIME/menu.vim"
fall-back for $VIM: "/usr/share/vim"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK -pthread -I/usr/include/gtk-2.0 -I/usr/lib/x86_64-linux-gnu/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/libpng12 -I/usr/include/harfbuzz -pthread -DORBIT2=1 -D_REENTRANT -I/usr/include/libgnomeui-2.0 -I/usr/include/libart-2.0 -I/usr/include/gconf/2 -I/usr/include/gnome-keyring-1 -I/usr/include/libgnome-2.0 -I/usr/include/libbonoboui-2.0 -I/usr/include/libgnomecanvas-2.0 -I/usr/include/gtk-2.0 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/gnome-vfs-2.0 -I/usr/lib/x86_64-linux-gnu/gnome-vfs-2.0/include -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/orbit-2.0 -I/usr/include/libbonobo-2.0 -I/usr/include/bonobo-activation-2.0 -I/usr/include/libxml2 -I/usr/include/pango-1.0 -I/usr/include/gail-1.0 -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/atk-1.0 -I/usr/lib/x86_64-linux-gnu/gtk-2.0/include -I/usr/include/cairo -I/usr/include/gio-unix-2.0/ -I/usr/include/pixman-1 -I/usr/include/libpng12 -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -I/usr/include/tcl8.6 -D_REENTRANT=1 -D_THREAD_SAFE=1 -D_LARGEFILE64_SOURCE=1
Linking: gcc -L. -Wl,-Bsymbolic-functions -Wl,-z,relro -rdynamic -Wl,-export-dynamic -Wl,-E -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,--as-needed -o vim -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfontconfig -lgobject-2.0 -lglib-2.0 -lfreetype -lgnomeui-2 -lSM -lICE -lbonoboui-2 -lgnomevfs-2 -lgnomecanvas-2 -lgnome-2 -lpopt -lbonobo-2 -lbonobo-activation -lORBit-2 -lart_lgpl_2 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfontconfig -lfreetype -lgconf-2 -lgthread-2.0 -lgmodule-2.0 -lgobject-2.0 -lglib-2.0 -lSM -lICE -lXpm -lXt -lX11 -lXdmcp -lSM -lICE -lm -ltinfo -lnsl -lselinux -lacl -lattr -lgpm -ldl -L/usr/lib -llua5.2 -Wl,-E -fstack-protector -L/usr/local/lib -L/usr/lib/perl/5.18/CORE -lperl -ldl -lm -lpthread -lcrypt -L/usr/lib/python2.7/config-x86_64-linux-gnu -lpython2.7 -lpthread -ldl -lutil -lm -Xlinker -export-dynamic -Wl,-O1 -Wl,-Bsymbolic-functions -L/usr/lib/x86_64-linux-gnu -ltcl8.6 -ldl -lz -lpthread -lieee -lm -lruby-1.9.1 -lpthread -lrt -ldl -lcrypt -lm -L/usr/lib
Bạn cần kiểm tra 2 điểm
- Phiên bản Vim, it should be version 7. 3 trở nên
- Python có hỗ trợ Vim. Trong danh sách được đưa ra, hãy kiểm tra xem có dòng
4 là Vim đã hỗ trợ Python hay không rồi2.7.6 [default, Jun 22 2015, 18:01:27] [GCC 4.8.2]
Nếu hệ thống của bạn thỏa mãn cả 2 điểm trên, thì bạn đã sẵn sàng để cấu hình Vim. Bạn có thể bỏ qua phần cài đặt/nâng cấp này
hệ điều hành X
Một cách cài đặt đơn giản khác trên OS X là sử dụng Homebrew
$ brew update
$ brew install vim
*NIX
Với hệ điều hành Debian hoặc Ubuntu, bạn có thể cài đặt Vim bằng lệnh
$ sudo apt-get remove vim-tiny
$ apt-get update
$ apt-get install vim
Với các bản phân phối khác của Linux, bạn có thể tham khảo tài liệu này để biết cách cài đặt Vim trên hệ thống của mình
các cửa sổ
Có rất nhiều cách để cài đặt Vim trên Windows, cách dễ dàng nhất là bạn hãy đọc và làm theo tài liệu của Vim
Kiểm tra việc cài đặt
Bạn hãy chắc chắn rằng mình đã cài đặt Vim từ phiên bản 7. 3 trở nên, và nó có hỗ trợ Python. Bạn có thể chạy lệnh
2.7.6 [default, Jun 22 2015, 18:01:27]
[GCC 4.8.2]
5 để kiểm tra thêm lần nữa. Nếu bạn muốn kiểm tra phiên bản Python được Vim sử dụng, bạn có thể chạy lệnh 2.7.6 [default, Jun 22 2015, 18:01:27]
[GCC 4.8.2]
6 trong Vim2.7.6 [default, Jun 22 2015, 18:01:27]
[GCC 4.8.2]
Lệnh trên sẽ đưa ra phiên bản hiện tại của Python trên hệ thống của bạn. Nếu có lỗi xảy ra, nghĩa là Vim của bạn không hỗ trợ Python, bạn cần cài đặt lại nó
Với Vim đã được cài đặt xong, phần tiếp theo, tôi sẽ trình bày cách biến Vim để biến nó thành môi trường phát triển Python
Cập nhật
Nếu bạn muốn phát triển bằng Python 3 thì Vim của bạn nên hỗ trợ Python 3 [
2.7.6 [default, Jun 22 2015, 18:01:27]
[GCC 4.8.2]
7]. Những cách cài đặt trên sẽ cài đặt phiên bản Vim hỗ trợ Python 2 [2.7.6 [default, Jun 22 2015, 18:01:27]
[GCC 4.8.2]
4] mà không hỗ trợ Python 3 [_______19]. Vì vậy, bạn cần cài đặt Vim từ mã nguồn của nó để có thể làm việc với Python 3 một cách tốt nhấtCách cài đặt của tôi như sau [Với hệ điều hành Ubuntu]
- Cài đặt các gói cần thiết để xây dựng Vim từ mã nguồn
2.7.6 [default, Jun 22 2015, 18:01:27]
[GCC 4.8.2]
0- Lấy mã nguồn Vim từ Github
2.7.6 [default, Jun 22 2015, 18:01:27]
[GCC 4.8.2]
1- Config to support Python 3 Vim
2.7.6 [default, Jun 22 2015, 18:01:27]
[GCC 4.8.2]
2Config on sẽ giúp bạn cài đặt một phiên bản Vim khá đầy đủ tính năng, hỗ trợ Python 3, clipboard và một phiên bản Vim đồ họa [
2.7.6 [default, Jun 22 2015, 18:01:27]
[GCC 4.8.2]
00]. Phiên bản Vim này sẽ được cài đặt vào thư mục 2.7.6 [default, Jun 22 2015, 18:01:27]
[GCC 4.8.2]
01 nên bạn hoàn toàn có thể sử dụng nó song song với các phiên bản Vim khác được cài đặt thông qua các gói quản lý gói. You can alias as after to use 2 phiên bản Vim một cách nhanh chóngVới bí danh trên, hệ thống của bạn sẽ ra lệnh
2.7.6 [default, Jun 22 2015, 18:01:27]
[GCC 4.8.2]
02 để làm việc với Python 3 và 2.7.6 [default, Jun 22 2015, 18:01:27]
[GCC 4.8.2]
03 để làm việc với Python 2Phần mở rộng Vim
Vim có thể làm rất nhiều việc mà nhà phát triển cần. Tuy nhiên, Vim cũng có khả năng mở rộng rất linh hoạt, và nó cũng có nhiều tiện ích mở rộng cho Vim để biến nó trở thành một IDE hiện đại. Nhưng trước tiên, bạn cần một tiện ích mở rộng quản lý tốt
Tiện ích mở rộng của Vim thường được gọi là gói hoặc plugin
vó ngựa
Vim có rất nhiều trình quản lý tiện ích mở rộng khác nhau, nhưng tôi khuyên bạn nên sử dụng Vundle. Vundle của Vim cũng giống như pip của Python. Nó làm cho việc cài đặt và cập nhật các tiện ích mở rộng trở nên rất đơn giản
To install Vundle, you use after
2.7.6 [default, Jun 22 2015, 18:01:27]
[GCC 4.8.2]
7Lệnh trên sẽ tải xuống Vundle và lưu nó vào thư mục chứa plugin của Vim. Sau khi cài đặt Vundle, bạn có thể quản lý các extension từ trong file config là
2.7.6 [default, Jun 22 2015, 18:01:27]
[GCC 4.8.2]
04Thêm tệp
2.7.6 [default, Jun 22 2015, 18:01:27]
[GCC 4.8.2]
04 vào thư mục HOME của bạnBây giờ, bạn cần cấu hình Vundle trong tệp
2.7.6 [default, Jun 22 2015, 18:01:27]
[GCC 4.8.2]
04 bằng cách thêm vào các nội dung sau đó$ brew update
$ brew install vim
1Trên đây, bạn đã cấu hình để Vim sử dụng Vundle. Từ bây giờ, mỗi lần thêm plugin, nếu bạn muốn cài đặt, bạn chỉ cần mở Vim và chạy lệnh
Lệnh trên sẽ chỉ dẫn Vudle thực hiện công việc của một tiện ích mở rộng quản lý trình quản lý - tải xuống các plugin và cài đặt/cập nhật chúng cho bạn
Với người dùng Windows, bạn có thể tham khảo Hướng dẫn cài đặt Windows
Biến Vim thành IDE
Chúng ta khó có thể liệt kê tất cả các tính năng của Vim. Ở trong nội dung bài viết này, chúng ta sẽ kể ra một số tính năng quan trọng đối với những người phát triển Python
Un use mouse
Một tính năng quan trọng nhất của Vim là nó không cần đến chuột [ngoại trừ một vài biến thể có giao diện đồ họa như gvim hay macvim]. Khi mới bắt đầu, công việc này có vẻ khó chịu, nhưng sau khi làm quen rồi bạn sẽ thấy hữu ích. Không sử dụng chuột khiến bạn không bị nhảy nhầm con trỏ ra vị trí khác nếu vô tình bạn chạm tay vào bàn phím cảm ứng. Hãy nghiên cứu một số tổ hợp phím bạn sẽ thấy việc sử dụng Vim cũng rất thú vị
Partition screen
Open a file with
2.7.6 [default, Jun 22 2015, 18:01:27]
[GCC 4.8.2]
07 command you will chia màn hình Vim theo chiều thẳng đứng [có nghĩa là tệp mới sẽ được mở bên trên tệp cũ]. Hoặc dùng lệnh đảo ngược 2.7.6 [default, Jun 22 2015, 18:01:27]
[GCC 4.8.2]
08 bạn sẽ chia màn hình theo chiều ngang [có nghĩa là tệp mới được mở tệp cũ bên trái]Bạn có thể chia các màn hình lồng nhau, chia màn hình ngang trong màn hình đã được chia dọc, theo ý muốn của bạn. Bởi vì thông thường các nhà phát triển vẫn cần đọc nhiều tệp một lúc, nên tính năng thực sự rất hữu ích
Mẹo chuyên nghiệp. Bạn có thể sử dụng phím
2.7.6 [default, Jun 22 2015, 18:01:27]
[GCC 4.8.2]
09 để Vim đưa ra gợi ý cho tệp sau khi nhập lệnh 2.7.6 [default, Jun 22 2015, 18:01:27]
[GCC 4.8.2]
07Mẹo chuyên nghiệp. Bạn có thể chỉ định các vùng màn hình khác nhau để chia bằng cách bổ sung các cấu hình sau vào tệp
2.7.6 [default, Jun 22 2015, 18:01:27]
[GCC 4.8.2]
04$ brew update
$ brew install vim
7Mẹo chuyên nghiệp. Nếu bạn muốn chuyển đổi giữa các màn hình đã được chia mà không có chuột. Rất đơn giản, bạn có thể thêm các cấu hình sau vào tệp
2.7.6 [default, Jun 22 2015, 18:01:27]
[GCC 4.8.2]
04 và bạn có thể di chuyển qua lại các cửa sổ chỉ bằng 1 tổ hợp phím$ brew update
$ brew install vim
0Configure on for you of the following keys keys
13 chuyển đến cửa sổ bên dưới2.7.6 [default, Jun 22 2015, 18:01:27] [GCC 4.8.2]
14 convert on the window on2.7.6 [default, Jun 22 2015, 18:01:27] [GCC 4.8.2]
15 chuyển sang cửa sổ bên phải2.7.6 [default, Jun 22 2015, 18:01:27] [GCC 4.8.2]
16 chuyển sang cửa sổ bên trái2.7.6 [default, Jun 22 2015, 18:01:27] [GCC 4.8.2]
Nói ngắn gọn lại, bạn có thể sử dụng phím
2.7.6 [default, Jun 22 2015, 18:01:27]
[GCC 4.8.2]
17 và các phím di chuyển của Vim để di chuyển qua lại các cửa sổ18 là gì? .2.7.6 [default, Jun 22 2015, 18:01:27] [GCC 4.8.2]
20 có nghĩa là bạn sắp xếp lại các phím trong "chế độ bình thường" của Vim chứ không phải trong "chế độ trực quan". At config on,2.7.6 [default, Jun 22 2015, 18:01:27] [GCC 4.8.2]
21 có nghĩa là ở "chế độ bình thường", khi tôi ấn vào2.7.6 [default, Jun 22 2015, 18:01:27] [GCC 4.8.2]
22 thì lệnh tương ứng với2.7.6 [default, Jun 22 2015, 18:01:27] [GCC 4.8.2]
23 sẽ được thực hiện. Thông tin chi tiết, bạn có thể tham khảo tại đây2.7.6 [default, Jun 22 2015, 18:01:27] [GCC 4.8.2]
Đệm
Vim can open many tab to open other file nhau. Nhưng thông thường, người ta thường sử dụng bộ đệm và phân chia màn hình. Bạn có thể hiểu bộ đệm là các tệp được mở bởi Vim. Vim cho phép chúng ta dễ dàng truy cập các bộ đệm, bằng lệnh
2.7.6 [default, Jun 22 2015, 18:01:27]
[GCC 4.8.2]
24 để chuyển đổi giữa các bộ đệm [tính năng tự động hoàn thành hoạt động cũng có ở đây]. Bạn cũng có thể sử dụng lệnh 2.7.6 [default, Jun 22 2015, 18:01:27]
[GCC 4.8.2]
25 để đưa ra danh sách tất cả các bộ đệmMẹo chuyên nghiệp. Kết thúc lệnh
2.7.6 [default, Jun 22 2015, 18:01:27]
[GCC 4.8.2]
25, Vim thông báo rằng 2.7.6 [default, Jun 22 2015, 18:01:27]
[GCC 4.8.2]
27. Thay vì nhấn ENTER để kết thúc, bạn có thể gõ lệnh 2.7.6 [default, Jun 22 2015, 18:01:27]
[GCC 4.8.2]
24 và chọn bộ đệm ngay khi danh sách vẫn đang được hiển thị. Điều này giúp bạn giảm đi một thao tác và cũng giúp bạn không cần phải nhớ hết hiệu của các vùng đệmThu gọn code
Phần lớn các IDE hiện đại đều cung cấp tính năng thu gọn mã [có thể gọi là thu gọn hoặc gấp lại]. Sau khi thu gọn, các lớp và phương thức chỉ được hiển thị trên dòng đầu tiên thay vì hiển thị tất cả mã. Bạn có thể mở riêng 1 phương thức để đọc cho dễ nhìn thay vì tất cả các phương thức đều được hiển thị hết ra
Bạn cũng có thể sử dụng chức năng này trong Vim với cấu hình sau
$ brew update
$ brew install vim
1Cấu hình đang hoạt động tốt, tuy nhiên bạn phải nhập
2.7.6 [default, Jun 22 2015, 18:01:27]
[GCC 4.8.2]
29 để thu gọn [hoặc để mở ra]. Bạn có thể sử dụng các phím cách để thực hiện công việc này, bằng cách cấu hình nó trong tệp 2.7.6 [default, Jun 22 2015, 18:01:27]
[GCC 4.8.2]
04$ brew update
$ brew install vim
2Bây giờ, bạn có thể dễ dàng thu gọn, mở đoạn mã bạn muốn
Lệnh đầu tiên ở cấu hình trên,
2.7.6 [default, Jun 22 2015, 18:01:27]
[GCC 4.8.2]
71 sẽ thu gọn mã của bạn dựa vào thụt lề. Thông thường, cấu hình này sẽ thu gọn mã hơi quá mức cần thiết một chút. Nhưng không sao, có một số tiện ích mở rộng có thể cải thiện điều đó. Trong các tiện ích mở rộng đó, tôi khuyên bạn nên sử dụng SimpylFold. Cài đặt nó rất đơn giản với Vundle bằng cách thêm vào tệp 2.7.6 [default, Jun 22 2015, 18:01:27]
[GCC 4.8.2]
04$ brew update
$ brew install vim
3Đừng quên lệnh
73 để cài đặt/cập nhật tiện ích mở rộng2.7.6 [default, Jun 22 2015, 18:01:27] [GCC 4.8.2]
Mẹo chuyên nghiệp. Nếu bạn muốn xem docstrings của code đã thu gọn?
$ brew update
$ brew install vim
4Indent cho Python
Một điều hiển nhiên là việc thụt lề chính là rất quan trọng với những ngôn ngữ như Python. Ngoài ra, việc thu gọn mã cũng dựa trên thụt lề nên bạn muốn thụt lề của mình thật chính xác. Về công việc này, Vim có vẻ hơi thiếu sót một chút vì không hỗ trợ việc thụt lề tự động sau các hàm khai báo,. Có 2 việc nên làm có liên quan tới việc thụt lề này là
- Thụt lề lệnh theo tiêu chuẩn của PEP8
- Hỗ trợ việc thụt lề tự động
PEP8
Để hỗ trợ công việc thụt lề đúng theo PEP8, bạn thêm các cấu hình sau vào tệp
2.7.6 [default, Jun 22 2015, 18:01:27]
[GCC 4.8.2]
04$ brew update
$ brew install vim
5With on config, it support you a number of job as. sử dụng 4 dấu cách mỗi khi bạn nhập Tab, đảm bảo độ dài mỗi dòng dưới 80 ký tự, lưu tệp với định dạng unix [sử dụng
2.7.6 [default, Jun 22 2015, 18:01:27]
[GCC 4.8.2]
75 làm dấu xuống dòng] nên bạn sẽ không gặp các vấn đề về hiển thị khi sử dụng Và nếu bạn muốn phát triển cả những ngôn ngữ khác nữa, bạn có thể sử dụng thêm lệnh
2.7.6 [default, Jun 22 2015, 18:01:27]
[GCC 4.8.2]
76 cho các loại tệp khác nhau$ brew update
$ brew install vim
6Bằng cách tương tự, bạn có thể cấu hình khác nhau cho các ngôn ngữ lập trình khác nhau. Vim cũng có một plugin tên là ftypes cho phép bạn lưu cấu hình cho các ngôn ngữ khác nhau ở các tệp riêng biệt. You can could use it if like
thụt lề tự động
Thụt lề tự động có thể sẽ giúp ích cho bạn trong rất nhiều trường hợp, ví dụ như trường hợp khai báo hàm quá dài và phải xuống dòng. Tuy nhiên, không phải lúc nào nó cũng thụt lề đúng như bạn muốn, nhất là khi chúng ta phải tuân theo tiêu chuẩn PEP8. To support this job, we will use plugin indentpython. vim
$ brew update
$ brew install vim
7Đánh dấu cách thừa
Chúng ta cũng cần tránh các dấu cách không cần thiết [nhất là các dấu cuối dòng]. Chúng ta có thể cấu hình Vim để đánh các dấu cách không cần thiết cho chúng ta để chúng ta có thể dễ dàng nhận ra và xóa chúng đi
$ brew update
$ brew install vim
8Với cấu hình trên, các dấu cách thừa sẽ bị đánh dấu là "xấu" và thường được hiển thị màu đỏ
Hỗ trợ UTF8
Trong phần lớn các trường hợp, bạn phải sử dụng UTF8 khi làm việc với Python, tốt nhất là khi bạn làm việc với Python 3. You can configure to Vim know and support you by after line
Tự động hoàn thành
Theo tôi, plugin tốt nhất để hỗ trợ auto-complete cho Python là YouCompleteMe. Bạn có thể cài đặt nó thông qua Vundle
$ brew update
$ brew install vim
9Về bản chất, YouCompleteMe sử dụng nhiều công cụ khác nhau [bao gồm cả Jedi cho Python], và nó cũng cần một số thư việc C được cài đặt sẵn trên máy của bạn để hoạt động. Nó có một hướng dẫn cài đặt rất đầy đủ và chi tiết. Bạn hãy tham khảo và làm theo hướng dẫn
Nó hoạt động rất tốt, tuy nhiên bạn nên thêm những cấu hình sau để tùy biến nó
$ sudo apt-get remove vim-tiny
$ apt-get update
$ apt-get install vim
0Trong 2 dòng trên, dòng thứ nhất để đảm bảo cửa sổ của biến tự động hoàn tất bị mất sau khi bạn đã hoàn tất, và dòng thứ hai định nghĩa một phím tắt để bạn đọc hướng dẫn
Phim
22 của tôi là phím cách, nên2.7.6 [default, Jun 22 2015, 18:01:27] [GCC 4.8.2]
78 nghĩa là tôi gõ2.7.6 [default, Jun 22 2015, 18:01:27] [GCC 4.8.2]
79 để xem hướng dẫn của những gì gợi ý. Đây là một công cụ rất hữu ích nếu bạn bắt đầu làm quen với những mã mới, thư viện mới2.7.6 [default, Jun 22 2015, 18:01:27] [GCC 4.8.2]
Cập nhật
YouCompleteMe hiện chưa hỗ trợ Python 3 nên nếu muốn tính năng tự động hoàn thành với Python 3, jedi-vim là một plugin khá tốt. Settings jedi-vim with after config
$ sudo apt-get remove vim-tiny
$ apt-get update
$ apt-get install vim
1You could also need YouCompleteMe with other language. Bạn có thể ánh xạ các phím để có thể bật, tắt YouCompleteMe một cách nhanh chóng với cấu hình sau
$ sudo apt-get remove vim-tiny
$ apt-get update
$ apt-get install vim
2Hỗ trợ môi trường ảo [virtualenv]
Là một người phát triển Python, chắc chắn rằng bạn sẽ thường xuyên làm việc với virtualenv. Tuy nhiên, có một vấn đề với Vim là nó mặc định không biết gì về virtualenv, do đó bạn cần cấu hình để Vim biết và YouCompleteMe sử dụng virtualenv bằng cách thêm những cấu hình sau vào tệp
2.7.6 [default, Jun 22 2015, 18:01:27]
[GCC 4.8.2]
04$ sudo apt-get remove vim-tiny
$ apt-get update
$ apt-get install vim
3Cấu hình trên sẽ xác định xem bạn có đang sử dụng virtualenv hay không, sau đó nó sẽ cấu hình lại hệ thống của bạn sao cho YouCompleteMe có thể tìm thấy các gói trên virtualenv này
Check tra/highlight cú pháp
Bạn có thể cấu hình Vim kiểm tra cú pháp cho bạn mỗi khi lưu tệp với plugin syntastic
$ sudo apt-get remove vim-tiny
$ apt-get update
$ apt-get install vim
4Bạn cũng có thể thêm kiểm tra PEP8 có thủ thuật hay không với plugin sau
Cuối cùng, bạn đánh dấu mã để trông nó đẹp hơn
$ sudo apt-get remove vim-tiny
$ apt-get update
$ apt-get install vim
5Bảng màu
Phối màu là tùy biến giao diện của Vim khiến nó trở nên lung linh hơn. Bạn có thể tham khảo bảng phối màu 2 được năng lượng mặt trời cho Vim với GUI và Zenburn cho Vim trên dòng lệnh giao diện
$ sudo apt-get remove vim-tiny
$ apt-get update
$ apt-get install vim
6Bạn cần thêm một chút cấu hình ở đây để sử dụng bảng màu cho tùy chọn Vim vào môi trường mà nó đang chạy
$ sudo apt-get remove vim-tiny
$ apt-get update
$ apt-get install vim
7Lược đồ năng lượng mặt trời có 2 chế độ màu nền sáng và tối. Bạn có thể chuyển đổi qua lại giữa 2 chế độ này rất đơn giản [bằng cách ấn phím
$ brew update
$ brew install vim
11] với cấu hình sauBrowse file and directory
Nếu bạn muốn xem cấu trúc các tệp và thư mục của dự án, plugin NERDTree chính là thứ bạn cần
$ sudo apt-get remove vim-tiny
$ apt-get update
$ apt-get install vim
8Nếu bạn sử dụng các tab, bạn có thể cần thêm vim-nerdtree-tabs
$ sudo apt-get remove vim-tiny
$ apt-get update
$ apt-get install vim
9Bạn có thể bỏ qua các tệp
$ brew update
$ brew install vim
12 trong cửa sổ NERDTree bằng cấu hình sau2.7.6 [default, Jun 22 2015, 18:01:27]
[GCC 4.8.2]
0siêu tìm kiếm
Nếu bạn muốn tìm kiếm mọi thứ trong Vim, bạn có thể sử dụng ctrlP
Plugin cho phép Vim hoạt động như trình soạn thảo hiện đại, chỉ cần nhấn
$ brew update
$ brew install vim
13 là bạn có thể tìm kiếm tất cả mọi thứ. Không chỉ tìm kiếm tệp tìm kiếm, nó có thể tìm kiếm các thẻ tìm kiếm, bạn có thể tham khảo qua video YouTubeĐánh số dòng
Bạn có thể bật dòng đánh số chế độ với cấu hình
Tích hợp git
Nếu bạn muốn sử dụng một số lệnh git cơ bản mà không cần phải thoát ra bên ngoài Vim, bạn có thể sử dụng plugin vim-fugitive
2.7.6 [default, Jun 22 2015, 18:01:27]
[GCC 4.8.2]
1Bạn có thể nhìn thấy ví dụ sử dụng thực tế của nó ở Vimcasts
Đường dây điện
Powerline là trạng thái thanh hiển thị cho bạn một số thông tin như virtualenv hiện tại, nhánh git, tệp đang được thao tác, v. v
Powerline được viết bằng Python, và nó hỗ trợ rất nhiều môi trường khác nhau như zsh, bash, tmux, IPython
2.7.6 [default, Jun 22 2015, 18:01:27]
[GCC 4.8.2]
2Bạn có thể tham khảo tài liệu của nó để biết cấu hình và tùy chọn
Cập nhật
Powerline sử dụng Python trong mã nguồn của nó để có thể hiển thị các thông tin. Tôi đã tìm thấy 1 plugin khác là vim-airline cũng hiển thị các thông tin tương tự powerline nhưng nó hoàn toàn sử dụng vimscript
bảng tạm
Vim thường sử dụng clipboard của chính nó và bỏ qua clipboard của hệ thống. Nhưng nhiều khi bạn muốn sử dụng những dữ liệu bị cắt, sao chép và dán từ những ứng dụng khác không phải là Vim. Nếu Vim của bạn hỗ trợ clipboard [
$ brew update
$ brew install vim
14] thì bạn có thể truy cập clipboard của hệ thống với cấu hình sauPhiên bản Vim gần đây đã hỗ trợ kiểm tra chính tả. Tuy nhiên, mặc định Vim chỉ có kiểm tra chính tả tiếng Anh. Nếu muốn kiểm tra chính tả với các ngôn ngữ, chúng tôi phải có tệp mô tả [
$ brew update
$ brew install vim
15] thì Vim mới có thể kiểm tra chúng tôiMặc dù đã có thêm Hỗ trợ cho một số ngôn ngữ khác tuy nhiên ngôn ngữ tiếng Việt vẫn chưa có trong danh sách trên. Thật có thể, Vim có công cụ cho phép chúng ta tự tạo tệp
$ brew update
$ brew install vim
15 từ các từ điển tệp [lệnh $ brew update
$ brew install vim
17]Tệp từ điển cũng không khó tìm kiếm, tôi sử dụng tệp từ điển từ dự án Chromium, đó là tệp vi_VN. aff và file vi_VN. dic
Với 2 tệp trên, chúng ta có thể tạo tệp
$ brew update
$ brew install vim
15 bằng cách mở Vim và thực thi lệnhVim will based on content 2 file
$ brew update
$ brew install vim
19 and $ brew update
$ brew install vim
70 to create ra file $ brew update
$ brew install vim
71. Công việc của bạn là sao chép tập tin này vào thư mục $ brew update
$ brew install vim
72 để sử dụng sau nàyĐã có tệp
$ brew update
$ brew install vim
15, chúng ta chỉ cần cấu hình để vim kiểm tra chính tả cho chúng ta2.7.6 [default, Jun 22 2015, 18:01:27]
[GCC 4.8.2]
3Một số lệnh thông báo trong công việc kiểm tra chính tả
74 di chuyển đến từ sai kế tiếp$ brew update $ brew install vim
75 di chuyển đến từ sai trước$ brew update $ brew install vim
76 thêm vào từ điển$ brew update $ brew install vim
77 xóa từ vừa thêm khỏi từ điển$ brew update $ brew install vim
78 xem từ đề nghị cho từ sai$ brew update $ brew install vim
Vim trong vỏ
Cuối cùng, khi bạn đã thành thạo Vim và các lệnh của nó rồi, thì bạn sẽ thấy mình muốn mình thao tác với mọi thứ giống như thao tác với Vim. Phần lớn các shell đều có chế độ VI, bạn có thể bật nó lên bằng cách thêm cấu hình sau vào tệp
$ brew update
$ brew install vim
79Bây giờ, bạn không chỉ có thể sử dụng các tổ hợp phím của Vim trong shell mà bạn còn có thể sử dụng chúng trong trình thông dịch lệnh Python và các công cụ khác có sử dụng GNU Readline [phần lớn shell của cơ sở . Giờ đây, bạn đã có Vim ở mọi nơi
Kết luận
Trên đây là các cấu hình để biến Vim thành IDE [ít nhất là cho Python]. Có hàng trăm hàng giải nén extension khác nhau dành cho Vim mà bạn có thể sử dụng, cũng như có rất nhiều lựa chọn khác nhau để thay thế những extension được giới thiệu trong bài viết này. Bạn có thể lựa chọn và cấu hình Vim theo ý mình. Đây là cấu hình Vim của tôi, bạn có thể tham khảo nó