Python dán thụt lề

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

  1. Phiên bản Vim, it should be version 7. 3 trở nên
  2. Python có hỗ trợ Vim. Trong danh sách được đưa ra, hãy kiểm tra xem có dòng
    2.7.6 [default, Jun 22 2015, 18:01:27]
    [GCC 4.8.2]
    
    4 là Vim đã hỗ trợ Python hay không rồi

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 Vim

2.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ất

Cá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]
2

Config 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óng

Vớ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 2

Phầ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]
7

Lệ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]
04

Thê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ạn

Bâ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
1

Trê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]
07

Mẹ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
7

Mẹ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
0

Configure on for you of the following keys keys

  • 2.7.6 [default, Jun 22 2015, 18:01:27]
    [GCC 4.8.2]
    
    13 chuyển đến cửa sổ bên dưới
  • 2.7.6 [default, Jun 22 2015, 18:01:27]
    [GCC 4.8.2]
    
    14 convert on the window on
  • 2.7.6 [default, Jun 22 2015, 18:01:27]
    [GCC 4.8.2]
    
    15 chuyển sang cửa sổ bên phải
  • 2.7.6 [default, Jun 22 2015, 18:01:27]
    [GCC 4.8.2]
    
    16 chuyển sang cửa sổ bên trái

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ổ

2.7.6 [default, Jun 22 2015, 18:01:27]
[GCC 4.8.2]
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ào
2.7.6 [default, Jun 22 2015, 18:01:27]
[GCC 4.8.2]
22 thì lệnh tương ứng với
2.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 đây

Đệ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ộ đệm

Mẹ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 đệm

Thu 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
1

Cấ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
2

Bâ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

2.7.6 [default, Jun 22 2015, 18:01:27]
[GCC 4.8.2]
73 để cài đặt/cập nhật tiện ích mở rộng

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
4

Indent 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à

  1. Thụt lề lệnh theo tiêu chuẩn của PEP8
  2. 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
5

With 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
6

Bằ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
8

Vớ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
9

Về 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
0

Trong 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

2.7.6 [default, Jun 22 2015, 18:01:27]
[GCC 4.8.2]
22 của tôi là phím cách, nên
2.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ới

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
1

You 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
2

Hỗ 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
3

Cấ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
4

Bạ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
5

Bả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
6

Bạ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
7

Lượ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 sau

Browse 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
8

Nế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
9

Bạ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 sau

2.7.6 [default, Jun 22 2015, 18:01:27]
[GCC 4.8.2]
0

siê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]
1

Bạ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]
2

Bạ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 sau

Phiê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ôi

Mặ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ệnh

Vim 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 ta

2.7.6 [default, Jun 22 2015, 18:01:27]
[GCC 4.8.2]
3

Một số lệnh thông báo trong công việc kiểm tra chính tả

  • $ brew update
    $ brew install vim
    
    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

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
79

Bâ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ó

Chủ Đề