Nattawut Phetmak
Jack of all Trades
ลูกเล่นเล็กๆ น้อยๆ สำหรับคนใช้ vi เขียนโปรแกรมครับ
โดยปรกติ เวลาแก้ไขไฟล์ vi จะ auto-indent ให้อยู่แล้ว (สำหรับไฟล์ code ที่โปรแกรมรู้จัก) ถ้าต้องการ indent เอง ใช้ [<]
หรือ [>]
แล้วตามด้วย suffix เพื่อ indent เพิ่ม/ลดระดับความลึก code ของเรา
#include <stdio.h>
int main(void) {
int i;
for(i=0; i<5; i++) {
printf("%d", i); // press [>] [j] in this line
printf("---");
}
return 0; // press [<] [<] in this line
}
// will result
#include <stdio.h>
int main(void) {
int i;
for(i=0; i<5; i++) {
printf("%d", i);
printf("---");
}
return 0;
}
แต่ถ้าอยู่ใน insert mode การกด [Esc]
บ่อยๆ เพื่อออกมาใช้คำสั่งเหล่านี้คงไม่เข้าท่าเท่าไหร่ ตรงนี้เราสามารถใช้ [Tab]
(หรือ [Ctrl]+[t]
) กับ [Ctrl]+[d]
เพื่อเพิ่ม/ลดระดับความลึกของการ indent ได้ครับ
# suppose now in --insert mode--
def funny(): # press [Enter] to auto-indent.
if input() != '': # [Enter] for another +indent.
print('something') # [Enter] now give same indent.
print('detected') # to -indent depth:
print('but lost') # press [Enter] and [Ctrl]+[d].
print('just kidding')
นอกจากนี้ เรายังสามารถใช้ [=]
ตามด้วย suffix เพื่อสั่ง auto-indent code ที่ indent มั่วๆ ได้อีกด้วย
#include <stdio.h>
int main(void) {
int i;
for(i=0; i<5; i++) {
printf("%d", i);
if(i>3) {
break;
}
}
return 0;
}
// cursor at the 1st line
// press [=] [G]
#include <stdio.h>
int main(void) {
int i;
for(i=0; i<5; i++) {
printf("%d", i);
if(i>3) {
break;
}
}
return 0;
}
หมายเหตุว่าบางภาษาก็ไม่รองรับความสามารถนี้ เช่น Python ที่ต้อง indent เองครับ
ส่วนการเปลี่ยน case ของอักษรภาษาอังกฤษ ทำได้โดย [~]
public static void main(string[] args)
// ^ press [~]
public static void main(String[] args)