คำถามติดแท็ก vim

vim (Vi IMproved) เป็นโปรแกรมแก้ไขข้อความที่รองรับโหมดการแก้ไขที่แตกต่างกัน

1
แสดงส่วนของบรรทัดที่ถูกรวมเป็นกลุ่มแทนการซ่อนด้วยอักขระ @
ฉันใช้vimไม่เพียง แต่สำหรับการเข้ารหัส แต่ยังสำหรับการเขียนข้อความ ในบริบทนี้ฉันใช้ตัวเลือกการตัดและการเรียงบรรทัดเพื่อตัดข้อความของฉัน เนื่องจากบรรทัด - ย่อหน้าที่ขึ้นต้นด้วยการเขียนข้อความ - อาจมีความยาวมากบรรทัดที่ถูกพันได้ง่ายไม่พอดีในส่วนล่างของหน้าจอดังนั้นvimซ่อนบรรทัดที่ล้อมรอบทั้งหมดแทนที่ส่วนที่มองเห็นได้ด้วยสัญลักษณ์ @ มีโอกาสที่จะหลีกเลี่ยงปัญหานี้หรือไม่เพื่อที่vimจะแสดงเฉพาะส่วนของเส้นที่ถูกพันที่ยังคงอยู่ที่ด้านล่างของหน้าจอ
14 vim 

5
VIM แสดงความคิดเห็นกับสิ่งที่ฉันวาง
ฉันได้รับสิ่งนี้เมื่อพยายามคัดลอกแก่นสารนี้ใน vim: https://gist.github.com/w0ng/3278077 ฉันสังเกตเห็นพฤติกรรมเดียวกันทุกที่: หากฉันวางสิ่งที่มีความคิดเห็นทุกอย่างที่ตามความคิดเห็นนั้นจะถูกวางความคิดเห็น อาจจะมีบางอย่างเกี่ยวข้องกับความจริงที่ว่าถ้าฉันเขียนความคิดเห็นในโหมดแทรกและกด Enter บรรทัดต่อไปนี้จะผนวกความคิดเห็นโดยอัตโนมัติ ฉันจะกำจัดพฤติกรรมนี้ได้อย่างไร
14 vim  vimrc 

2
ฉันจะเน้นบรรทัดปัจจุบันและเคอร์เซอร์ใน. vimrc ได้อย่างไร
ฉันกำลังพยายามเน้นบรรทัดปัจจุบันรวมถึงตำแหน่งเคอร์เซอร์ใน Vim นี่คือ. vimrc ของฉัน: set cursorline hi CursorLine ctermbg=8 ctermfg=15 "8 = dark gray, 15 = white hi Cursor ctermbg=15 ctermfg=8 ปัญหาที่ฉันพบคือสีพื้นหลังของบรรทัดปัจจุบันครอบคลุมสีพื้นหลังของเคอร์เซอร์ดังนั้นจึงมีลักษณะดังนี้: ฉันสามารถบอกได้อย่างชัดเจนว่าเคอร์เซอร์อยู่ที่ใดเพราะสีพื้นหน้าเกือบดำ แต่เมื่อเคอร์เซอร์อยู่ในที่ว่างหรือที่จุดเริ่มต้น / ปลายของเส้น ฉันทำอะไรผิดที่นี่
14 vim  vimrc 

8
การตั้งค่าที่แนะนำสำหรับสภาพแวดล้อมการเขียนโปรแกรมแบบข้อความที่มีน้ำหนักเบาเป็นพิเศษใน linux
ฉันกำลังมองหาคำแนะนำสำหรับการตั้งค่าสำหรับความต้องการเฉพาะของฉัน ฉันไม่ได้ทำลินุกซ์มามากตั้งแต่เรียนจบและอยากกลับมาเป็นงานอดิเรก ฉันมีฮาร์ดแวร์ที่ไม่แรงเกินไป (RAM 512 MB, single core) ฉันต้องการทำทุกอย่างผ่านเชลล์และโปรแกรมแก้ไขข้อความเช่นเสียงเรียกเข้า เป้าหมายของฉันคือไม่เคยแตะเมาส์ ฉันต้องการความสามารถในการเปิดเชลล์หลาย ๆ ตัวพร้อมกันหนึ่งตัวกำลังเรียกใช้เว็บเซิร์ฟเวอร์หนึ่งที่เรียกใช้เป็นกลุ่มเรียกใช้แอปพลิเคชันของฉันสร้างไปป์ไลน์และอีกหนึ่งคำสั่งสำหรับ ad-hoc เชลล์คำสั่งเช่น wget grepping และ untarring เป็นต้น สามารถเปิดเชลล์ใหม่และสลับระหว่างเชลล์ได้อย่างรวดเร็วด้วยคีย์บอร์ด แต่ถึงแม้ว่าฉันต้องการเชลล์หลายตัว แต่ฉันไม่ต้องการสภาพแวดล้อมเดสก์ทอปแบบกราฟิก ฉันไม่ต้องการถูกล่อลวงให้ใช้เมาส์ ส่วนหนึ่งของจุดประสงค์ของฉันคือการบังคับตัวเองให้เรียนรู้วิธีใช้บรรทัดคำสั่งในการทำงานต่างๆ ฉันยังต้องการที่จะใช้ประโยชน์จากจอภาพขนาดใหญ่ของฉันโดยใช้เสียงเรียกเข้าพร้อมกับคอลัมน์สองร้อยคอลัมน์ที่ลดลง เป็นไปได้ไหม

1
ใช้ inotifywait พร้อมกับเสียงเรียกเข้า
ฉันมีสคริปต์ง่ายๆที่ตรวจสอบไฟล์สำหรับการเปลี่ยนแปลงและ rsyncs ด้วยสำเนาระยะไกล: #!/bin/bash while inotifywait -e close_write somefile do rsync somefile user@host.domain:./somefile done มันใช้งานได้ดีกับนาโน แต่ล้มเหลวด้วยเสียงเรียกเข้า เมื่อฉันใช้ nano มันจะออกผลลัพธ์: somefile CLOSE_WRITE,CLOSE และเริ่มวนรอบถัดไปรอรุ่นอื่น เมื่อฉันใช้เป็นกลุ่มจะไม่มีผลลัพธ์สคริปต์จะปิดด้วยรหัสออก 0 ฉันทำการวิจัยบางอย่างและพบว่า close_write เป็นพารามิเตอร์ที่ถูกต้องสำหรับ uing initofywait พร้อมกับ vim (ตอนแรกฉันต้องการใช้เหตุการณ์แก้ไข) แต่ด้วยเหตุผลบางอย่างมันล้มเหลวสำหรับฉัน
14 files  vim  rsync  inotify 

4
เป็นกลุ่ม: สร้างไฟล์ด้วย + x บิต
มีวิธีใดบ้างในการตั้งค่า+xบิตของสคริปต์ขณะที่สร้าง ตัวอย่างเช่นฉันวิ่ง: vim -some_option_to_make_file_executable script.sh และหลังจากบันทึกฉันสามารถเรียกใช้ไฟล์โดยไม่ต้องย้ายใด ๆ เพิ่มเติม PS ฉันสามารถเรียกใช้chmodจากvimหรือแม้กระทั่งจากคอนโซลตัวเอง แต่มันน่ารำคาญเล็กน้อยเพราะvimแนะนำให้โหลดไฟล์ นอกจากนี้ยังเป็นเรื่องน่ารำคาญที่จะพิมพ์chmodคำสั่งทุกครั้ง PPS มันจะเป็นการดีที่จะทำให้มันขึ้นอยู่กับนามสกุลของไฟล์ (ฉันไม่ต้องการปฏิบัติการ.txt:-))

2
เป็นกลุ่มที่ไม่ทำงานภายใน tmux
เมื่อฉันพยายามที่จะเปิดไฟล์โดยใช้vimภายในtmuxทั้งหน้าต่างค้าง C-a &ฉันต้องฆ่าหน้าต่างที่มี นี่คือ~/.vimrcการตั้งค่าของฉัน: :set autoindent :set ts=4 :set number :set shiftwidth=4 :set showmode :filetype on :filetype plugin on :syntax enable :set mouse=a และ ~/.tmux.conf # I like Ctrl-a as the default hotkey unbind C-b set-option -g prefix C-a # Split window using | and - unbind % bind | …
14 vim  tmux 

3
รูปแบบของสถานะเริ่มต้นคืออะไร
ฉันอ่านเกี่ยวกับวิธีการปรับปรุง statusline เป็นกลุ่มที่นี่ และฉันสามารถอัปเดตได้สำเร็จ แต่ฉันต้องการที่จะรักษารูปแบบของสถานะเป็นกลุ่มเริ่มต้นและเพียงแค่เพิ่มข้อมูลเพิ่มเติมบางอย่างไปเช่นขนาดไฟล์ประเภทไฟล์ ฯลฯ บรรทัดสถานะเริ่มต้นที่เป็นกลุ่มคือ: <file-name> line_num,col_num %file ฉันจะทำสิ่งต่อไปนี้ได้อย่างไร? ฉันต้องการเพิ่มข้อมูลหลังจากชื่อไฟล์ แสดงรูปแบบสถานะปัจจุบัน ( :set statuslineไม่แสดงผลใด ๆ ) ฉันเหนื่อย: set statusline+=%y แต่สิ่งนี้จะเขียนทับทั้งสถานะและเพียงแค่แสดงประเภทไฟล์ ( %y) คำใบ้ใด ๆ
14 vim 

1
เป็นกลุ่ม: ซ่อนบรรทัดสถานะที่ด้านล่าง
บางครั้งฉันทำงานกับหน้าต่างเทอร์มินัลเล็ก ๆ และต้องการพื้นที่ว่างทุกชิ้น ดังนั้นฉันต้องการซ่อนบรรทัดสถานะเป็นกลุ่ม ฉันแล้วset laststatus=0สิ่งนี้ซ่อนหนึ่งในบรรทัดสถานะ แต่ยังคงมีอีกคนหนึ่งที่มีเนื้อหาและ-- INSERT --"filename.ext" 22L 500C ฉันจะซ่อนบรรทัดนี้ได้อย่างไร

7
คัดลอก / วางลงใน SSH'd VIM จากคลิปบอร์ดท้องถิ่น (Windows)
ฉันต้องการคัดลอกจากเครื่องท้องถิ่นและวางลงในกลุ่มบนกล่องรีโมตซึ่งฉันเป็น SSH แค่นั้นแหละ. ฉันได้ลอง"+p and "*pคลิกเมาส์ที่กลางและอีกสองอย่างอื่นที่ไม่มีประโยชน์ :( ยอมรับได้อีกด้วย (แม้ว่าจะสะดวกน้อยกว่า) ก็เพียงข้ามคลิปบอร์ดและคลิปบอร์ดไปยังไฟล์ ปัญหาของฉันคือฉันใช้ PuttyTray ไม่ใช่ Putty เมื่อฉันพยายามทำสิ่งเดียวกันใน Putty มันได้ผลฉันไม่คิดว่าจะมีปัญหากับเรื่องนั้น
14 ssh  vim  copy-paste 

3
Bash เติมข้อความอัตโนมัติด้วยคำสั่ง vim
ใน bash การเติมข้อความอัตโนมัติของเส้นทางเพิ่งหยุดทำงานเมื่อออกvimคำสั่งโดยที่เส้นทางนั้นมีความลึกมากกว่าสองไดเรกทอรี (จะยังคงทำงานตามที่คาดไว้กับคำสั่งอื่นเช่นlsและcd) ตัวอย่างเช่นถ้าฉันพิมพ์ls .config/btsync/btแล้วกด TAB ls .config/btsync/btsync.confจะขยายไป ถ้าผมพิมพ์vim .config/btแล้วกด TAB vim .config/btsync/จะขยายไป อย่างไรก็ตามถ้าฉันพิมพ์vim .config/btsync/btแล้วกด TAB ไม่มีอะไรเกิดขึ้น (ฉันคาดว่าจะขยายvim .config/btsync/btsync.confเป็นlsตัวอย่างเช่นด้านบน ฉันได้รับปัญหาเดียวกันเมื่อทำงานในฐานะผู้ใช้ของตัวเองและเมื่อทำงานเป็น su ฉันอ่านโพสต์นี้ซึ่งกล่าวถึงปัญหาของ bash-completion เวอร์ชั่นเก่า แต่ฉันใช้ 2.1-5 UPDATE: หลังจากการทดสอบเพิ่มเติมฉันพบว่าปัญหารากคือทุบตีจะสมบูรณ์เพียงชื่อไดเรกทอรีไม่ใช่ชื่อไฟล์ UPDATE: ปรากฎว่าbash-completionเป็นสาเหตุโดยรวม ดูความคิดเห็นที่สองของฉันในคำตอบที่ยอมรับ ข้อเสนอแนะเกี่ยวกับสาเหตุที่เป็นไปได้ของพฤติกรรมนี้จะได้รับสุดซึ้ง!

2
มีคำสั่ง reverse search เป็นกลุ่มหรือไม่?
ใน linux cli ฉันสามารถทำctrl-rและทำการค้นหาแบบย้อนกลับและเลือกสิ่งที่ฉันทำได้อย่างง่ายดาย มีอะไรที่คล้ายกันเป็นกลุ่ม? ฉันหมายถึงฉันอาจเรียกใช้คำสั่งโดยใช้:(อาจเป็นอะไรก็ได้เช่นการทดแทนระยะยาว) และถ้าฉันต้องทำมันอีกครั้งฉันต้องพิมพ์ใหม่อีกครั้ง มีวิธีการหลีกเลี่ยงการพิมพ์ซ้ำ แต่กลับค้นหาและดำเนินการแทนได้หรือไม่?
13 vim  search 

4
ฉันควรแก้ไขไฟล์ในเครือข่ายด้วย Vim ได้อย่างไร?
ขณะนี้ฉันกำลังทำโดย SSHing ในเซิร์ฟเวอร์และดำเนินการเป็นกลุ่มบนเซิร์ฟเวอร์ สิ่งนี้มีประโยชน์ในการไม่ต้องจัดการกับไวยากรณ์ที่ยุ่งยากของการเปิดไฟล์จากเซิร์ฟเวอร์ระยะไกลบน SCP และที่สำคัญกว่านั้นคือสามารถนำทางระบบไฟล์ของเซิร์ฟเวอร์ได้อย่างรวดเร็ว ในทางกลับกันมันมีความล่าช้าซึ่งทำให้แก้ไขยาก อะไรคือวิธีการบัญญัติบัญญัติของการแก้ไขไฟล์ระยะไกลมากมาย?
13 networking  files  vim 

1
ข้ามไประหว่าง“ ถ้า” และ“ fi” เป็นกลุ่มในขณะที่แก้ไขสคริปต์ทุบตี?
เช่นเดียวกับที่คุณสามารถข้ามไปมาระหว่างคู่เช่น()ฉันสามารถขยายคุณสมบัตินี้เพื่อข้ามระหว่างแท็กเริ่มต้นและแท็กสิ้นสุด เช่นในทุบตีกระโดดระหว่างifและfi
13 vim 

2
VIM การเรียกใช้งานคำสั่งคีย์ในฟังก์ชัน
ฉันมีฟังก์ชั่นและฉันต้องการที่จะดำเนินการคำสั่งที่สำคัญ แต่ฉันได้รับข้อผิดพลาดตัวอักษรต่อท้าย: function! MyFunction() if condition <C-W><C-W> else :some_other_command endif endfunction ไม่ชอบ <CW> <CW> ฉันจะใช้อะไรแทนได้บ้าง
13 vim 

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