วิธีการแสดงชื่อของไฟล์ที่ฉันกำลังแก้ไขด้วย vim ในชื่อ terminal?


20

ฉันกำลังแก้ไขไฟล์หลายไฟล์ที่อยู่ในโฟลเดอร์เดียวกันในหลายแท็บในเทอร์มินัลเดียว

pwd(ไดเรกทอรีที่ฉันใช้งานอยู่) จะปรากฏที่ด้านบนของส่วนหัวของเทอร์มินัล แต่ไม่ใช่ชื่อของไฟล์ที่ฉันกำลังแก้ไข มันเกิดความสับสนเมื่อทำงานกับหลาย ๆ ไฟล์ในไดเรกทอรีเดียวกัน

pwdวิธีการแสดงชื่อของไฟล์ปัจจุบันที่ด้านบนของอาคารที่นอกเหนือไปจาก

ฉันกำลังทำงานvimใน bash shell ในgnome-terminalวันที่ 12.04 LTS


1
การแก้ไขโดยใช้เครื่องมือแก้ไขอะไร เปลือกไหน เทอร์มินัลอีมูเลเตอร์ใด?
terdon

@terdon - การแก้ไขโดยใช้ Vim, bash Shell, xterm emulator
malhar

2
โปรดแก้ไขคำถามของคุณเพื่อเพิ่มข้อมูลพิเศษเป็นการยากที่จะอ่านและพลาดง่ายในการแสดงความคิดเห็น จากนั้นคุณสามารถ ping ผู้ใช้ที่ขอข้อมูลโดยออกความคิดเห็นและรวมถึง@ก่อนชื่อผู้ใช้ของพวกเขา ตัวอย่างเช่นในการ ping @terdonฉัน:
terdon

xtermไม่มีแท็บ คุณแน่ใจxtermเหรอ echo $TERMมักจะไม่ส่งคืนชื่อของเทอร์มินัลอีมูเลเตอร์ของคุณหากนั่นคือสิ่งที่คุณทำ
terdon

@terdon ใช่ฉันใช้ echo $ TERM มันส่งออก "xterm" ฉันใช้เทอร์มินัลเริ่มต้น 64 บิตของ Ubuntu 12.04 LTS มีวิธีอื่นในการตรวจสอบรายละเอียดของโปรแกรมจำลองหรือไม่
malhar

คำตอบ:


13

คุณต้องมี / สร้างไฟล์ชื่อ.vimrcในโฮมไดเร็กตอรี่ของคุณด้วยรหัสต่อไปนี้ภายใน:

let &titlestring = $USER . "@" . hostname() . " " . expand("%:p")
if &term == "screen"
  set t_ts=^[k
  set t_fs=^[\
endif
if &term == "screen" || &term == "xterm"
  set title
endif

ป้อนคำอธิบายรูปภาพที่นี่

ที่มา: gnome-terminal ไม่อนุญาตให้เปลี่ยนชื่อ


ในการสร้าง ^ [ซึ่งหนีคุณต้องป้อน CTRL + V <Esc>
tinmarino

8

คำตอบ (ยอมรับ) ปัจจุบันไม่ทำงานหากคุณเปลี่ยนไฟล์ / บัฟเฟอร์ภายในหนึ่งในกลุ่มเสียงเรียกเข้าของคุณ ชื่อจะไม่ได้รับการอัปเดต

ต่อไปนี้ก็เพียงพอที่จะมีชื่อการปรับปรุงโดยอัตโนมัติในคำพังเพยขั้วยังเมื่อคุณสลับแฟ้มโดยใช้:e foo.txt, :b0, :b#ฯลฯ

เพียงวางสิ่งนี้ลงใน~/.vimrcไฟล์ของคุณ:

autocmd BufEnter * let &titlestring = ' ' . expand("%:t")             
set title

ระบบ: Ubuntu 14.10, กลุ่ม 7.4.273, gnome-terminal 3.6.2-0ubunt


ไม่ควรset titleจะอยู่ในบรรทัดเดียวกันหลังจาก|?
Victor Sergienko

เกี่ยวข้องกับคำถาม: หากต้องการคืนค่าชื่อหลังจากออกเป็นกลุ่มให้เพิ่ม set titleold=.vimrcไป
Victor Sergienko

5

เพียงเพิ่ม

set title

เพื่อคุณ ~/.vimrcที่คุณ

ตัวอย่างชื่อ: testfile (~ / Documents) - VIM


1
นั่นเป็นคำตอบเดียวที่เหมาะกับฉันและสั้นที่สุด
user10089632

1

คุณสามารถผนวกชื่อไฟล์ที่คุณกำลังแก้ไขในแท็บในลักษณะดังต่อไปนี้:

  1. ไปที่เมนูด้านบนสุดของเครื่อง เทอร์มินัล -> ตั้งชื่อ -> ที่นี่คุณต่อท้ายชื่อไฟล์ที่คุณกำลังแก้ไข

เช่นเมื่อคุณเปิดเครื่องส่วนหัวของเครื่องจะแสดงเฉพาะ "~" การแสดง pwd / home / xxx /

สมมติว่าที่ตำแหน่งนี้คุณกำลังแก้ไขไฟล์ ABC.cpp คุณสามารถตั้งชื่อของแท็บเป็น "~ / ABC.cpp" โดยผนวก "/ABC.cpp" ในฟิลด์ตั้งชื่อ

คุณสามารถทำสิ่งนี้ซ้ำสำหรับแท็บอื่นด้วย


4
และคุณจะทำการเปลี่ยนแปลงเหล่านี้ทุกครั้งเมื่อคุณแก้ไขไฟล์อื่น? ฟังดูเจ็บปวด ...
Radu Rădeanu

0

สิ่งนี้จะเปลี่ยนชื่อหน้าต่างด้วยหากคุณเปลี่ยนชื่อบัฟเฟอร์:

set title
augroup WindowTitleGroup
  autocmd!
  autocmd BufEnter,BufFilePost * let &titlestring = expand('%:t')
augroup end

การวางคำสั่งในกลุ่มหลีกเลี่ยงการดำเนินการคำสั่งหลายครั้งเมื่อทำการจัดหาvimrcมากกว่าหนึ่งครั้ง

นี้ทำงานอย่างกับเป็นกลุ่ม-ขันที:Renameที่ช่วยให้คุณเปลี่ยนชื่อไฟล์โดยใช้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.