Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม Bash

Powerline – ยกระดับ Vim, Bash และอื่นๆ ด้วย Statuslines และ Prompts ที่ซับซ้อน

Powerline เป็นปลั๊กอิน statusline ยอดเยี่ยมสำหรับ Vim editor ซึ่งพัฒนาใน Python และให้ statuslines และ prompts สำหรับแอปพลิเคชันอื่นๆ มากมาย เช่น bash, zsh, tmux และอื่นๆ

คุณสมบัติ

  1. เขียนใน Python ทำให้ขยายได้และมีฟีเจอร์มาก
  2. Code base ที่มั่นคงและทดสอบได้ ทำงานดีกับ Python 2.6+ และ Python 3
  3. รองรับ prompts และ statuslines ในหลายยูทิลิตี้และเครื่องมือ Linux
  4. มีการตั้งค่าและสี decorator ที่พัฒนาด้วย JSON
  5. รวดเร็วและเบา พร้อม daemon support ให้ประสิทธิภาพดีขึ้น

Powerline Screenshots

ในบทความนี้ ผมจะแสดงวิธีติดตั้ง Powerline และ Powerline fonts และวิธีใช้กับ Bash และ Vim ภายใต้ระบบ RedHat และ Debian based

ขั้นตอนที่ 1: ติดตั้งข้อกำหนดทั่วไปสำหรับ Powerline

เนื่องจากข้อขัดแย้งการตั้งชื่อกับโปรเจกต์อื่นที่ไม่เกี่ยวข้อง โปรแกรม powerline พร้อมใช้งานบน PyPI (Python Package Index) ภายใต้ชื่อแพ็กเกจ powerline-status

เพื่อติดตั้งแพ็กเกจจาก PyPI เราต้องการ 'pip' (package management tool สำหรับติดตั้งแพ็กเกจ Python) ดังนั้น ให้ติดตั้งเครื่องมือ pip ภายใต้ระบบ Linux ของเราก่อน

ติดตั้ง Pip บน Debian, Ubuntu และ Linux Mint

# apt-get install python-pip
ตัวอย่างผลลัพธ์
Reading package lists... Done
Building dependency tree
Reading state information... Done
Recommended packages: python-dev-all python-wheel
The following NEW packages will be installed:
python-pip
0 upgraded, 1 newly installed, 0 to remove and 533 not upgraded.
Need to get 97.2 kB of archives.
After this operation, 477 kB of additional disk space will be used.
Get:1 https://archive.ubuntu.com/ubuntu/ trusty-updates/universe python-pip all 1.5.4-1ubuntu3 [97.2 kB]
Fetched 97.2 kB in 1s (73.0 kB/s)
Selecting previously unselected package python-pip.
(Reading database ... 216258 files and directories currently installed.)
Preparing to unpack .../python-pip_1.5.4-1ubuntu3_all.deb ...
Unpacking python-pip (1.5.4-1ubuntu3) ...
Processing triggers for man-db (2.6.7.1-1ubuntu1) ...
Setting up python-pip (1.5.4-1ubuntu3) ...

ติดตั้ง Pip บน CentOS, RHEL และ Fedora

ภายใต้ระบบ Fedora-based คุณต้องเปิดใช้งาน epel-repository ก่อน แล้วค่อยติดตั้งแพ็กเกจ pip ตามที่แสดง

# yum install python-pip
# dnf install python-pip [ใน Fedora 22+ versions]
ตัวอย่างผลลัพธ์
Installing: python-pip noarch 7.1.0-1.el7 epel 1.5 M
Transaction Summary =================================================================================
Install 1 Package
Total download size: 1.5 M
Installed size: 6.6 M
Is this ok [y/d/N]: y
Downloading packages:
python-pip-7.1.0-1.el7.noarch.rpm | 1.5 MB 00:00:01
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : python-pip-7.1.0-1.el7.noarch 1/1
Verifying : python-pip-7.1.0-1.el7.noarch 1/1
Installed: python-pip.noarch 0:7.1.0-1.el7
Complete!

ขั้นตอนที่ 2: ติดตั้ง Powerline Tool ใน Linux

ตอนนี้ถึงเวลาติดตั้ง Powerline เวอร์ชันพัฒนาล่าสุดจากที่เก็บ Git สำหรับนี้ ระบบของคุณต้องมีแพ็กเกจ git ติดตั้งเพื่อดึงแพ็กเกจจาก Git

# apt-get install git
# yum install git
# dnf install git

ต่อไป คุณสามารถติดตั้ง Powerline ด้วยความช่วยเหลือของคำสั่ง pip ดังนี้

# pip install git+git://github.com/Lokaltog/powerline
ตัวอย่างผลลัพธ์
Cloning git://github.com/Lokaltog/powerline to /tmp/pip-WAlznH-build
Running setup.py (path:/tmp/pip-WAlznH-build/setup.py) egg_info for package from git+git://github.com/Lokaltog/powerline
warning: no previously-included files matching '*.pyc' found under directory 'powerline/bindings'
warning: no previously-included files matching '*.pyo' found under directory 'powerline/bindings'
Installing collected packages: powerline-status
Found existing installation: powerline-status 2.2
Uninstalling powerline-status:
Successfully uninstalled powerline-status
Running setup.py install for powerline-status
warning: no previously-included files matching '*.pyc' found under directory 'powerline/bindings'
warning: no previously-included files matching '*.pyo' found under directory 'powerline/bindings'
changing mode of build/scripts-2.7/powerline-lint from 644 to 755
changing mode of build/scripts-2.7/powerline-daemon from 644 to 755
changing mode of build/scripts-2.7/powerline-render from 644 to 755
changing mode of build/scripts-2.7/powerline-config from 644 to 755
changing mode of /usr/local/bin/powerline-config to 755
changing mode of /usr/local/bin/powerline-lint to 755
changing mode of /usr/local/bin/powerline-render to 755
changing mode of /usr/local/bin/powerline-daemon to 755
Successfully installed powerline-status
Cleaning up...

ขั้นตอนที่ 3: ติดตั้ง Powerline Fonts ใน Linux

Powerline ใช้ glyphs พิเศษเพื่อแสดงเอฟเฟกต์ลูกศรพิเศษและสัญลักษณ์สำหรับนักพัฒนา สำหรับนี้ คุณต้องมี symbol font หรือ patched font ติดตั้งในระบบของคุณ

ดาวน์โหลดเวอร์ชันล่าสุดของ symbol font และไฟล์การตั้งค่า fontconfig โดยใช้คำสั่ง wget ต่อไปนี้

# wget https://github.com/powerline/powerline/raw/develop/font/PowerlineSymbols.otf
# wget https://github.com/powerline/powerline/raw/develop/font/10-powerline-symbols.conf

จากนั้นคุณต้องย้ายฟอนต์ไปยังไดเรกทอรีฟอนต์ของคุณ /usr/share/fonts/ หรือ /usr/local/share/fonts ตามนี้ หรือคุณสามารถได้พาธฟอนต์ที่ถูกต้องด้วยคำสั่ง xset q

# mv PowerlineSymbols.otf /usr/share/fonts/

ต่อไป คุณต้องอัปเดต font cache ของระบบดังนี้

# fc-cache -vf /usr/share/fonts/

ตอนนี้ติดตั้งไฟล์ fontconfig

# mv 10-powerline-symbols.conf /etc/fonts/conf.d/

หมายเหตุ: หาก custom symbols ไม่ปรากฏ ให้ลองปิดเซสชันเทอร์มินัลทั้งหมดและ restart X window เพื่อให้การเปลี่ยนแปลงมีผล

ขั้นตอนที่ 4: ตั้งค่า Powerline สำหรับ Bash Shell และ Vim Statuslines

ในส่วนนี้ เราจะดูการตั้งค่า Powerline สำหรับ bash shell และ vim editor ก่อนอื่น ทำให้เทอร์มินัลของคุณรองรับ 256color โดยเพิ่มบรรทัดต่อไปนี้ในไฟล์ ~/.bashrc

export TERM="screen-256color"

เปิดใช้งาน Powerline บน Bash Shell

เพื่อเปิดใช้งาน Powerline ใน bash shell โดยค่าเริ่มต้น คุณต้องเพิ่มโค้ดสนิปเพทต่อไปนี้ในไฟล์ ~/.bashrc

ก่อนอื่น หาตำแหน่งของ powerline ที่ติดตั้งแล้วด้วยคำสั่งต่อไปนี้

# pip show powerline-status
Name: powerline-status
Version: 2.2.dev9999-git.aa33599e3fb363ab7f2744ce95b7c6465eef7f08
Location: /usr/local/lib/python2.7/dist-packages
Requires:

เมื่อคุณรู้ตำแหน่งจริงของ powerline แล้ว ตรวจสอบให้แน่ใจว่าแทนที่ตำแหน่งในบรรทัดด้านล่างตามระบบของคุณ

powerline-daemon -q
POWERLINE_BASH_CONTINUATION=1
POWERLINE_BASH_SELECT=1
. /usr/local/lib/python2.7/dist-packages/powerline/bindings/bash/powerline.sh

ตอนนี้ลอง logout และ login ใหม่ คุณจะเห็น powerline statusline ตามที่แสดงด้านล่าง

ลองเปลี่ยนหรือสลับไปไดเรกทอรีต่างๆ และสังเกต " breadcrumb" prompt เปลี่ยนไปแสดงตำแหน่งปัจจุบันของคุณ

คุณยังจะเห็น background jobs ที่ค้างอยู่ และถ้า powerline ติดตั้งบนเครื่อง Linux ระยะไกล คุณจะสังเกตว่า prompt เพิ่ม hostname เมื่อเชื่อมต่อผ่าน SSH

เปิดใช้งาน Powerline สำหรับ Vim

ถ้า vim เป็นโปรแกรมแก้ไขโปรดของคุณ โชคดีที่มีปลั๊กอินทรงพลังสำหรับ vim ด้วย เพื่อเปิดใช้งานปลั๊กอินนี้ ให้เพิ่มบรรทัดเหล่านี้ใน ~/.vimrc

set rtp+=/usr/local/lib/python2.7/dist-packages/powerline/bindings/vim/
set laststatus=2
set t_Co=256

ตอนนี้คุณสามารถเปิด vim และเห็น status line ใหม่ที่สลิค:

สรุป

Powerline ช่วยตั้งค่า statuslines และ prompts ที่สีสันและสวยงามในแอปพลิเคชันหลายตัว เหมาะสำหรับสภาพแวดล้อมการเขียนโค้ด หวังว่าคุณจะพบว่าคู่มือนี้มีประโยชน์ และจำไว้โพสต์ความคิดเห็นถ้าคุณต้องการความช่วยเหลือหรือมีไอเดียเพิ่มเติม