โพสต์นี้เขียนโดย SathiyaMoorthy
บทความนี้เป็นส่วนหนึ่งของ Vi / Vim Tips and Tricks Series ที่กำลังดำเนินอยู่ ในฐานะผู้ดูแลระบบ Linux หรือโปรแกรมเมอร์ คุณอาจทำงานซ้ำๆ ขณะเขียนโค้ด bash shell script:
- การเพิ่มส่วนหัวของไฟล์
- การเพิ่มฟังก์ชัน/ความคิดเห็นของเฟรม
- รวมข้อมูลโค้ดเริ่มต้น
- กำลังดำเนินการตรวจสอบไวยากรณ์
- การอ่านเอกสารเกี่ยวกับฟังก์ชัน
- การแปลงบล็อคโค้ดเป็นความคิดเห็น และในทางกลับกัน
ปลั๊กอิน bash-Support Vim นำเสนอวิธีที่ง่ายที่สุดในการดำเนินการทั้งหมดข้างต้น ช่วยประหยัดเวลาและการกดแป้นพิมพ์ได้มาก
ปลั๊กอินนี้เขียนขึ้นโดย Fritz Mehner ผู้อธิบายวัตถุประสงค์ของปลั๊กอิน เป็น:“เขียนและเรียกใช้สคริปต์ BASH โดยใช้เมนูและปุ่มลัด”
บทความนี้อธิบายวิธีการติดตั้งปลั๊กอินใน 3 ขั้นตอนง่ายๆ และ 8 คุณลักษณะอันทรงพลังของปลั๊กอิน
3 ขั้นตอนในการติดตั้งปลั๊กอิน bash-support
ขั้นตอนที่ 1:ดาวน์โหลดปลั๊กอิน bash-support
ดาวน์โหลดปลั๊กอินจากเว็บไซต์ vim.org
$ cd /usr/src $ wget -O bash-support.zip https://www.vim.org/scripts/download_script.php?src_id=9890
ขั้นตอนที่ 2:ติดตั้ง Vim Plugin ที่รองรับ bash
$ mkdir ~/.vim # if the directory does not exist already $ cd ~/.vim $ unzip /usr/src/bash-support.zip
ขั้นตอนที่ 3:เปิดใช้งานปลั๊กอินใน ~/.vimrc
เพิ่มบรรทัดต่อไปนี้ใน ~/.vimrc เพื่อเปิดใช้งานปลั๊กอินสำหรับตัวแก้ไข Vim
$ vim ~/.vimrc filetype plugin on
8 คุณสมบัติอันทรงพลังของปลั๊กอิน Bash Vim
คุณลักษณะ 1:เพิ่มส่วนหัวอัตโนมัติให้กับไฟล์ *.sh
เมื่อคุณเปิดไฟล์ที่มีนามสกุล .sh จะเปิดไฟล์ที่มีส่วนหัวดังที่แสดงด้านล่าง ซึ่งจะวางเคอร์เซอร์ในช่องคำอธิบายในโหมดแทรก
#!/bin/bash #============================================================ # # FILE: myscript.sh # # USAGE: ./myscript.sh # # DESCRIPTION: # # OPTIONS: --- # REQUIREMENTS: --- # BUGS: --- # NOTES: --- # AUTHOR: (), # COMPANY: # VERSION: 1.0 # CREATED: 02/14/09 15:42:08 IST # REVISION: --- #============================================================
หากต้องการเปลี่ยนค่าเริ่มต้นของ AUTHOR และ COMPANY ให้เพิ่มบรรทัดต่อไปนี้ใน ~/.vimrc
let g:BASH_AuthorName = 'SathiyaMoorthy' let g:BASH_Email = '[email protected]' let g:BASH_Company = 'Open Source Corporation'
ตอนนี้ เมื่อคุณสร้างไฟล์สคริปต์ทุบตีใหม่ มันจะแสดงค่าที่แก้ไขสำหรับ AUTHOR และ COMPANY ดังที่แสดงด้านล่าง
#!/bin/bash #============================================================ # # FILE: myscript.sh # # USAGE: ./myscript.sh # # DESCRIPTION: # # OPTIONS: --- # REQUIREMENTS: --- # BUGS: --- # NOTES: --- # AUTHOR: SathiyaMoorthy (), [email protected] # COMPANY: Open Source Corporation # VERSION: 1.0 # CREATED: 02/14/09 15:39:58 IST # REVISION: --- #============================================================
หมายเหตุ: หากต้องการเพิ่มฟิลด์ที่กำหนดเองในส่วนหัว ให้แก้ไขไฟล์ ~/.vim/perl-support/templates/bash-file-header และเพิ่มฟิลด์ที่คุณกำหนดเอง
คุณลักษณะ 2:การเพิ่มฟังก์ชัน Bash โดยใช้ \sfu
สำหรับการเขียนรูทีนย่อย ให้พิมพ์ \sfu ในโหมดปกติ ซึ่งจะพร้อมต์สำหรับชื่อฟังก์ชัน (ดังแสดงในรูปที่ 1 ด้านล่าง) และแทรกรูทีนย่อยที่มีเนื้อหาฟังก์ชันเริ่มต้น (ดังแสดงในรูปที่ 2 ด้านล่าง)
รูปที่ 1: พิมพ์ \sfu เพื่อเพิ่มฟังก์ชัน bash ภายในเชลล์สคริปต์
รูปที่ 2: เพิ่มฟังก์ชัน Bash โดยอัตโนมัติภายในเชลล์สคริปต์
คุณลักษณะ 3:แทรกส่วนหัวของฟังก์ชันโดยใช้ \cfu
สำหรับการแทรกส่วนหัวของฟังก์ชัน ให้พิมพ์ \cfu ในโหมดปกติ ซึ่งจะแสดงความคิดเห็นดังแสดงในรูปที่ 3
รูปที่ 3: พิมพ์ \cfu เพื่อแทรกส่วนหัวของฟังก์ชันภายในเชลล์สคริปต์
คุณลักษณะ 4:เพิ่มความคิดเห็นเฟรมโดยใช้ \cfr
เมื่อต้องการเพิ่มความคิดเห็นเกี่ยวกับเฟรม ให้พิมพ์ \cfr ในโหมดปกติ ซึ่งจะให้ความคิดเห็นในรูปแบบต่อไปนี้ ดังแสดงในภาพที่ 4
รูปที่ 4: พิมพ์ \cfr เพื่อแทรกความคิดเห็นของเฟรมภายในเชลล์สคริปต์
คุณลักษณะ 5:แทรกคำสั่งทุบตีภายในเชลล์สคริปต์
ปุ่มลัดเพื่อแทรกข้อความสั่งคือ:
- \sc กรณีใน … esac
- \sl เอลฟ์ แล้ว
- \sf เพราะทำเสร็จแล้ว
- \sfo สำหรับ ((…)) ทำเสร็จแล้ว
- \si ถ้าเป็นเช่นนั้น fi
- \sie ถ้าเป็นเช่นนั้น fi
- \ss เลือกทำเสร็จแล้ว
- \st จนเสร็จ
- \sw ในขณะที่ทำ
- \sfu ฟังก์ชัน
- \se echo e “\n”
- \sp printf “\n”
ตัวอย่าง:แทรก Case Statement ภายในเชลล์สคริปต์โดยอัตโนมัติ
\sc จะแทรกคำสั่ง case และวางเคอร์เซอร์ถัดจากคำสั่ง case ในโหมด INSERT ดังแสดงในรูปที่ 5 เช่นนี้ คุณสามารถใช้การกดแป้นพิมพ์ลัดที่กล่าวถึงทั้งหมดเพื่อรับคำสั่งที่เหมาะสมในตารางที่ 1
รูปที่ 5: พิมพ์ \sc เพื่อแทรกคำสั่ง case ใน bash shell script
คุณลักษณะ 6:แทรกข้อมูลโค้ดที่กำหนดไว้ล่วงหน้าไปยังสคริปต์ทุบตีโดยใช้ \nr
ข้อมูลโค้ดสามารถอ่าน/เขียนได้โดยใช้ \nr และ \nw ตามลำดับ ปลั๊กอินนี้มาพร้อมกับข้อมูลโค้ดที่กำหนดไว้ล่วงหน้าบางส่วนซึ่งคุณสามารถแทรกลงในโค้ดของคุณได้ ต่อไปนี้เป็นข้อมูลโค้ดเริ่มต้นที่มาพร้อมกับปลั๊กอิน
$ ls -1 ~/.vim/bash-support/codesnippets/ assert basename+pathname basename-function check-number-of-command-line-arguments create-tempfile create-tempfile-with-trap free-software-comment read-and-split-into-array timestamp usage-and-command-line-arguments.noindent use-file-descriptor-read use-file-descriptor-write well-behaved-script
ในการรวมข้อมูลโค้ดสำหรับตรวจสอบหมายเลขของคำสั่ง-บรรทัด-อาร์กิวเมนต์ ให้กด \nr แล้วคุณจะได้รับพร้อมท์ให้ใส่ชื่อไฟล์ ตั้งชื่อไฟล์เป็น check-number-of-command-line-arguments และโค้ดต่อไปนี้จะถูกแทรกลงในเชลล์สคริปต์โดยอัตโนมัติ
#----------------------------------------------------------------------- # Check number of command line arguments #----------------------------------------------------------------------- if [ $# -lt 1 ] then echo -e "\n\tUsage: ${0##/*/} File\n" exit 1 fi
หมายเหตุ: คุณสามารถกำหนดข้อมูลโค้ดของคุณเองและวางไว้ใต้ ~/.vim/bash-support/codesnippets/ คุณยังสามารถสร้างข้อมูลโค้ดของคุณเองจากโค้ดที่มีอยู่ได้ โดยเลือกส่วนของโค้ดที่ต้องการสร้างเป็นข้อมูลโค้ด กด \nw และตั้งชื่อไฟล์ให้กับโค้ดนั้น ในครั้งต่อไป ให้พิมพ์ \nr และชื่อไฟล์เพื่อรับข้อมูลโค้ดที่คุณกำหนดเอง
คุณลักษณะ 7:รับความช่วยเหลือด่วนเกี่ยวกับคำสั่งในตัวของ Bash
เมื่อคุณต้องการอ่านหน้าความช่วยเหลือสำหรับ bash builtins ให้ใช้ \hh เมื่อเคอร์เซอร์อยู่ในคำ
ในตัวอย่างต่อไปนี้ (รูปที่ 6) คำสั่ง read bash builtin จะถูกเลือกและพิมพ์ \hh ซึ่งแสดงวิธีใช้ด่วนบนคำสั่ง read ใช้วิธีการเดียวกันเพื่อรับความช่วยเหลืออย่างรวดเร็วสำหรับคำสั่ง bash builtin ทั้งหมด
รูปที่ 6: พิมพ์ \hh เพื่อรับความช่วยเหลือเกี่ยวกับคำสั่ง bash builtin ที่เลือก
คุณลักษณะ 8:แสดงความคิดเห็นเด่น
คำสั่งต่อไปนี้จะเพิ่มความคิดเห็นของคำหลักที่เกี่ยวข้อง ตัวอย่างเช่น พิมพ์ \ckb เพื่อเพิ่มบรรทัดความคิดเห็น BUG ภายในเชลล์สคริปต์
- \ckb ข้อบกพร่องของคำหลัก
- \ckt คำหลัก TODO
- \ckr คำหลักหากิน
- \ckw คำเตือนคำหลัก
พิมพ์ \ckt เพื่อเพิ่มบรรทัดความคิดเห็นด้วยคำหลัก “# :TODO:mm/dd/yy::“ นี่เป็นบรรทัดความคิดเห็นที่ทำหน้าที่เป็นสิ่งที่ต้องทำ ซึ่งคุณสามารถพิมพ์รายการที่คุณต้องการทำให้เสร็จในภายหลังได้
รูปที่ 7: พิมพ์ \ckt เพื่อเพิ่ม TODO ภายใน bash shell script
มีคุณลักษณะที่มีประสิทธิภาพมากมายในปลั๊กอิน bash-support อ่านเอกสารสำหรับข้อมูลเพิ่มเติม เอกสารอยู่ในตำแหน่งต่อไปนี้ในระบบของคุณ
- README :~/.vim/README.bashsupport
- PDF :~/.vim/bash-support/doc/bash-hot-keys.pdf
- เอกสารประกอบปลั๊กอิน vim รองรับ bash ออนไลน์
- ปลั๊กอินนี้มาพร้อมกับไฟล์ช่วยเหลือ (bashsupport.txt) ซึ่งสามารถดูได้โดย :h bashsupport
- [ สร้างแท็กความช่วยเหลือโดย :helptags ~/.vim/doc จากนั้นออก :h bashsupport ]
- ภาพหน้าจอเพิ่มเติมของปลั๊กอินนี้
แนะนำให้อ่าน
Vim 101 Hacks โดย Ramesh Natarajan . ฉันเป็นคนขี้ยาบรรทัดคำสั่ง โดยธรรมชาติแล้วฉันเป็นแฟนตัวยงของบรรณาธิการ Vi และ Vim เมื่อหลายปีก่อน เมื่อฉันเขียนโค้ด C จำนวนมากบน Linux ฉันเคยอ่านเคล็ดลับและลูกเล่นตัวแก้ไข Vim ที่มีอยู่ทั้งหมด จากประสบการณ์แก้ไข Vim ของฉัน ฉันได้เขียน Vim 101 Hacks eBook ที่มีตัวอย่างเชิงปฏิบัติ 101 ตัวอย่างเกี่ยวกับฟีเจอร์ Vim ขั้นสูงต่างๆ ที่จะทำให้คุณทำงานได้รวดเร็วและมีประสิทธิภาพในตัวแก้ไข Vim แม้ว่าคุณจะใช้ Vi และ Vim Editors มาหลายปีแล้วและยังไม่ได้อ่านหนังสือเล่มนี้ โปรดช่วยตัวเองให้เป็นประโยชน์และอ่านหนังสือเล่มนี้ คุณจะทึ่งกับความสามารถของโปรแกรมแก้ไข Vim