Developer Playground: Colorize nano

Colorize nano

nano เวอร์ชั่น 2.x.x จะถูกติดตั้งบนเครื่อง Mac อยู่แล้ว ถ้าเราต้องการให้ nano มีสีสันสดใส Colorize มากขึ้น เราต้องติดตั้งเวอร์ชั่น 5.x.x


Developer Playground ซีรี่ส์


Colorize Nano on Mac

  1. ติดตั้ง Homebrew
  2. Mac ได้ติดตั้ง nano version 2.x.x มาให้เราแล้ว แต่ถ้าเราต้องการใช้งาน nano เวอร์ชั่นปัจจุบัน ให้ติดตั้งด้วย brew
brew install nano
  1. สร้างไฟล์ .nanorc ที่ Home ด้วยคำสั่ง
sudo nano ~/.nanorc

ในไฟล์ .nanorc ใส่โค้ดนี้เข้าไป

include "/usr/local/Cellar/nano/*/share/nano/*.nanorc"

ถ้าเข้าไปดูในโฟลเดอร์

"/usr/local/Cellar/nano/*/share/nano/"

จะพบภาษาทั้งหมดที่ nano รองรับ

All languages nano support
  1. เปิดไฟล์ .zshrc ด้วยคำสั่ง
sudo nano ~/.zshrc

เพื่อให้ zsh ดึงนาโนเวอร์ชั่นล่าสุดมาใช้งาน ให้เพิ่มโค้ดนี้เข้าไปครับ

# nano configuration
alias nano='/usr/local/bin/nano'
# nano configuration finised
.zshrc file

เสร็จแล้วลองใช้คำสั่ง which nano จะเห็นว่ามันใช้นาโนเวอร์ชั่นที่อยู่ใน "/usr/local/bin/nano"

which nano command
which nano command

สำหรับการตั้งค่าอื่นๆ ผมได้แชร์ไว้ที่ Gist ดังนี้ครับ

ไฟล์ .nanorc ไม่ทำงานกับ sudo nano

หลังจาก รีสตาร์ท เครื่อง Mac ผมพบว่า Nano มันแสดงสีสัน และคุณสมบัติอื่นๆ เฉพาะเมื่อใช้คำสั่ง nano <file-name> เท่านั้น แต่เมื่อใช้ร่วมกับคำสั่ง sudo มันไม่แสดงสีสันใดๆ หรือแม้กระทั่งเลขบรรทัดก็ไม่มี

วิธีแก้

วิธีแรก ย้ายไฟล์ nanorc

ให้ลบไฟล์ ~/.nanorc และไฟล์ nanorc ในเครื่องทิ้งทั้งหมด แล้วสร้างไฟล์ nanorc ขึ้นมาใหม่ที่โฟลเดอร์

/usr/local/etc/

คำสั่งในการสร้างไฟล์

cd /usr/local/etc/
touch nanorc

ใส่โค้ดนี้เข้าไปที่ไฟล์ nanorc

คัดลอกไฟล์ *.nanorc จาก

"/usr/local/Cellar/nano/*/share/nano/"

ไปไว้ที่

"/usr/local/share/nano/"

ด้วยคำสั่ง

cp /usr/local/Cellar/nano/*/share/nano/*.nanorc /usr/local/share/nano/

ลองเปิดไฟล์ .zshrc ด้วยคำสั่ง

sudo nano ~/.zshrc

ถ้า nano ยังไม่แสดงสีสัน หรือเลขบรรทัด ให้ลองใช้วิธีที่สอง

ติดตั้ง nano จาก source

วิธีแก้วิธีที่สองคือติดตั้ง nano ใหม่เลยครับ โดยครั้งนี้จะติดตั้งจาก source ก่อนอื่นให้ uninstall nano ที่อยู่ในเครื่องออกไปก่อนครับ

brew uninstall nano

เสร็จแล้วไปที่เว็บหลักของ nano-editor เลือก Get Nano เลือก The source code xzipped: ให้คัดลอกลิงค์มาครับ ซึ่งจะได้

https://www.nano-editor.org/dist/v5/nano-5.8.tar.xz

เข้าไปที่โฟลเดอร์ “/tmp” แล้วดาวน์โหลด source มาไว้ที่นี่ครับ — เครื่องจะล้างไฟล์ใน “/tmp” ทิ้งเมื่อรีสตาร์ท Mac

cd /tmp
wget https://www.nano-editor.org/dist/v5/nano-5.8.tar.xz

unzip ด้วยคำสั่ง

tar xvzf nano-5.8.tar.xz
╭─ /tmp                                                                                                               base
╰─❯ tar xvzf nano-5.8.tar.xz
x nano-5.8/
x nano-5.8/AUTHORS
x nano-5.8/missing
x nano-5.8/ABOUT-NLS
x nano-5.8/config.sub
x nano-5.8/syntax/
x nano-5.8/syntax/tcl.nanorc
x nano-5.8/syntax/sh.nanorc
x nano-5.8/syntax/makefile.nanorc
x nano-5.8/syntax/ocaml.nanorc
x nano-5.8/syntax/php.nanorc
x nano-5.8/syntax/markdown.nanorc
x nano-5.8/syntax/python.nanorc
x nano-5.8/syntax/sql.nanorc
x nano-5.8/syntax/texinfo.nanorc
x nano-5.8/syntax/html.nanorc
x nano-5.8/syntax/asm.nanorc
x nano-5.8/syntax/objc.nanorc
...
...
...
x nano-5.8/lib/lc-charset-dispatch.c
x nano-5.8/lib/wmemchr-impl.h
x nano-5.8/lib/stat-w32.c
x nano-5.8/lib/stdint.in.h
x nano-5.8/lib/mbrtowc-impl-utf8.h
x nano-5.8/lib/frexp.c
x nano-5.8/lib/realloc.c
x nano-5.8/lib/readdir.c
x nano-5.8/aclocal.m4
x nano-5.8/Makefile.am
x nano-5.8/config.h.in
x nano-5.8/INSTALL
x nano-5.8/configure
x nano-5.8/THANKS
x nano-5.8/config.guess
x nano-5.8/NEWS

เข้าไปที่โฟลเดอร์ที่เราเพิ่ง unzip แล้วสั่ง configure

cd nano-5.8 && ./configure
╭─ /tmp                                                                                                               base
╰─❯ cd nano-5.8

╭─ /tmp/nano-5.8                                                                                                      base
╰─❯ ls
ABOUT-NLS   ChangeLog     config.h.in   configure     COPYING.DOC  IMPROVEMENTS  lib          Makefile.in  po      syntax
aclocal.m4  compile       config.rpath  configure.ac  depcomp      INSTALL       m4           missing      README  THANKS
AUTHORS     config.guess  config.sub    COPYING       doc          install-sh    Makefile.am  NEWS         src     TODO

╭─ /tmp/nano-5.8                                                                                                      base
╰─❯ ./configure
checking build system type... x86_64-apple-darwin20.6.0
checking host system type... x86_64-apple-darwin20.6.0
checking for a BSD-compatible install... /usr/local/bin/ginstall -c
checking whether build environment is sane... yes
checking for a race-free mkdir -p... /usr/local/bin/gmkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports the include directive... yes (GNU style)
checking for gcc... gcc
...
...
...
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating doc/Makefile
config.status: creating doc/sample.nanorc
config.status: creating lib/Makefile
config.status: creating m4/Makefile
config.status: creating po/Makefile.in
config.status: creating src/Makefile
config.status: creating syntax/Makefile
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing po-directories commands
config.status: creating po/POTFILES
config.status: creating po/Makefile

  The global nanorc file is: /usr/local/etc/nanorc
  Syntaxes get installed in: /usr/local/share/nano/


╭─ /tmp/nano-5.8                                                                                                56s  base
╰─❯

*** ให้สังเกตตรงสองบรรทัดสุดท้ายครับ ไฟล์ nanorc อยู่ที่ “/usr/local/etc/nanorc” และ syntaxes หรือไฟล์ที่ทำให้เกิดสีสันอยู่ที่ “/usr/local/share/nano/”

ต่อไปใช้คำสั่ง make ครับ ในโฟลเดอร์เดิมนะครับ

make
...
...
...
mv -f .deps/text.Tpo .deps/text.Po
gcc -DHAVE_CONFIG_H -I. -I..  -DLOCALEDIR=\"/usr/local/share/locale\" -DSYSCONFDIR=\"/usr/local/etc\" -I../lib -I../lib -I/usr/local/include  -g -O2 -Wall -MT utils.o -MD -MP -MF .deps/utils.Tpo -c -o utils.o utils.c
mv -f .deps/utils.Tpo .deps/utils.Po
gcc -DHAVE_CONFIG_H -I. -I..  -DLOCALEDIR=\"/usr/local/share/locale\" -DSYSCONFDIR=\"/usr/local/etc\" -I../lib -I../lib -I/usr/local/include  -g -O2 -Wall -MT winio.o -MD -MP -MF .deps/winio.Tpo -c -o winio.o winio.c
mv -f .deps/winio.Tpo .deps/winio.Po
gcc  -g -O2 -Wall   -o nano browser.o chars.o color.o cut.o files.o global.o help.o history.o move.o nano.o prompt.o rcfile.o search.o text.o utils.o winio.o -L/usr/local/lib -lintl -Wl,-framework -Wl,CoreFoundation ../lib/libgnu.a   -lz  -lncurses
Making all in syntax
make[2]: Nothing to be done for `all'.
make[2]: Nothing to be done for `all-am'.

ตามด้วย sudo make install

╭─ /tmp/nano-5.8                                                                                                      base
╰─❯ sudo make install
Password:
Making install in doc
/Applications/Xcode.app/Contents/Developer/usr/bin/make  install-recursive
make[4]: Nothing to be done for `install-exec-am'.
 /usr/local/bin/gmkdir -p '/usr/local/share/doc/nano'
 /usr/local/bin/ginstall -c -m 644 faq.html nano.1.html rnano.1.html nanorc.5.html nano.html '/usr/local/share/doc/nano'
 /usr/local/bin/gmkdir -p '/usr/local/share/info'
 /usr/local/bin/ginstall -c -m 644 ./nano.info '/usr/local/share/info'
 install-info --info-dir='/usr/local/share/info' '/usr/local/share/info/nano.info'
 /usr/local/bin/gmkdir -p '/usr/local/share/man/man1'
 /usr/local/bin/ginstall -c -m 644 nano.1 rnano.1 '/usr/local/share/man/man1'
 /usr/local/bin/gmkdir -p '/usr/local/share/man/man5'
 /usr/local/bin/ginstall -c -m 644 nanorc.5 '/usr/local/share/man/man5'
Making install in lib
...
...
...
Making install in src
 /usr/local/bin/gmkdir -p '/usr/local/bin'
  /usr/local/bin/ginstall -c nano '/usr/local/bin'
/Applications/Xcode.app/Contents/Developer/usr/bin/make  install-exec-hook
cd /usr/local/bin && rm -f rnano && ln -s nano rnano
make[2]: Nothing to be done for `install-data-am'.
Making install in syntax
make[2]: Nothing to be done for `install-exec-am'.
 /usr/local/bin/gmkdir -p '/usr/local/share/nano'
 /usr/local/bin/gmkdir -p '/usr/local/share/nano/extra'
 /usr/local/bin/ginstall -c -m 644  extra/ada.nanorc extra/debian.nanorc extra/fortran.nanorc extra/gentoo.nanorc extra/haskell.nanorc extra/povray.nanorc extra/spec.nanorc '/usr/local/share/nano/extra'
 /usr/local/bin/gmkdir -p '/usr/local/share/nano'
 /usr/local/bin/ginstall -c -m 644 asm.nanorc autoconf.nanorc awk.nanorc changelog.nanorc cmake.nanorc c.nanorc css.nanorc default.nanorc elisp.nanorc email.nanorc go.nanorc groff.nanorc guile.nanorc html.nanorc java.nanorc javascript.nanorc json.nanorc lua.nanorc makefile.nanorc man.nanorc markdown.nanorc nanohelp.nanorc nanorc.nanorc nftables.nanorc objc.nanorc ocaml.nanorc patch.nanorc perl.nanorc php.nanorc po.nanorc python.nanorc ruby.nanorc rust.nanorc sh.nanorc sql.nanorc tcl.nanorc tex.nanorc texinfo.nanorc xml.nanorc '/usr/local/share/nano'
make[2]: Nothing to be done for `install-exec-am'.
make[2]: Nothing to be done for `install-data-am'.

╭─ /tmp/nano-5.8                                                                                                 7s  base
╰─❯

เสร็จแล้วครับ ลองเข้าไปดูที่ “/usr/local/etc/” ว่ามีไฟล์ nanorc มั๊ย ถ้าไม่มีก็สร้างไฟล์นี้ขึ้นมาครับ แล้วใส่โค้ด

ไฟล์ nanorc อ้างถึงไฟล์

include "/usr/local/share/nano/*.nanorc"

ลองเข้าไปดูในโฟลเดอร์นี้ว่ามีไฟล์ *.nanorc มั๊ยครับ ด้วยคำสั่ง

cd /usr/local/share/nano/

จะได้ไฟล์ *.nanorc วางไว้ตามรูปนี้ครับ

All nanorc files
All nanorc files

สรุป

วิธีติดตั้ง nano จาก source

  1. ไปที่โฟลเดอร์ tmp -> cd /tmp
  2. ดาวน์โหลดไฟล์ nano-5.8.tar.xz -> wget https://www.nano-editor.org/dist/v5/nano-5.8.tar.xz
  3. แตกไฟล์ zip -> tar xvzf nano-5.8.tar.xz
  4. เข้าไปที่โฟลเดอร์ unzip -> cd nano-5.8
  5. สั่ง configure -> ./configure
  6. compile -> make
  7. ติดตั้ง -> sudo make install
  8. ตรวจเช็คไฟล์ “/usr/local/etc/nanorc” และ “/usr/local/share/nano/*.nanorc”

เสร็จแล้วลองใช้คำสั่ง sudo nano ~/.zshrc จะได้ตามภาพนี้ครับ

nano colorize done
nano colorize done

สมัครรับบทความ

ท่านจะได้รับบทความเกี่ยวกับเทคนิคในการเขียนโค้ด การสร้างเว็บไซต์ ความรู้ด้านบัญชี ภาษีอากร และอื่นๆ

0 0 votes
ให้คะแนนบทความ
Notify of
guest
0 ความเห็นทั้งหมด
Inline Feedbacks
ดูความเห็นทั้งหมด

บทความแนะนำ

Flask Python framework โดย สรุป

Flask Python framework + Emmet

สรุป วิธีสร้างเว็บไซต์ด้วยภาษา Python โดยใช้ Flask framework และ การตั้งค่า VSCode เพื่อให้สามารถใช้ Emmet ร่วมกับ Flask framework ได้

Redis บน Debian AWS EC2

Redis บน Debian AWS EC2

ติดตั้ง Redis แบบ Manual บน ระบบปฏิบัติการ Debian ที่อยู่บน EC2 ของ AWS Cloud จะช่วยให้การปรับแต่ง Redis เช่น การเพิ่มพอร์ต ทำได้ง่ายขึ้น

Colorize VIM

Developer Playground: Colorize VIM

ตกแต่ง VIM Editor ให้ดู Colorize ด้วย VIM Plug และมันยังมีประโยชน์ต่อการเขียนโค้ดด้วย เพราะมันจะแสดงข้อมูลที่สำคัญบริเวณขอบล่างของหน้าจอ

0
แสดงความเห็นได้นะx
()
x
Scroll to Top
Share on facebook
Share on twitter
Share on linkedin