แทรกอักขระโดยไม่ต้องเข้าสู่โหมดแทรก?

บางครั้งฉันต้องการแทรก # เพื่อใส่ความคิดเห็นในบรรทัดและทดสอบอย่างรวดเร็ว ขณะนี้ฉันทำ:

ฉัน#ESC:w

มีอะไรที่สั้นกว่านี้ที่ฉันสามารถทำได้ไหม?


person alejandro    schedule 17.01.2014    source แหล่งที่มา
comment
มีสคริปต์แสดงความคิดเห็นมากมาย ฉันใช้ commentary.vim: github.com/tpope/vim-commentary   -  person Peter Rincker    schedule 18.01.2014
comment
อย่างที่คนอื่นๆ พูดไปแล้ว คุณอาจต้องการลองใช้ปลั๊กอินสำหรับแสดงความคิดเห็น โดยทั่วไปแล้ว หากคุณมีการกระทำง่ายๆ ที่ต้องทำบ่อยๆ หรือทำซ้ำๆ คุณสามารถสร้างการแมปหรือมาโครได้อย่างง่ายดาย   -  person pandubear    schedule 18.01.2014


คำตอบ (6)


แม้ว่าฉันจะเห็นด้วยกับผู้อื่นว่ามีวิธีที่ดีกว่าในการแสดงความคิดเห็นและโค้ดที่ไม่แสดงความคิดเห็น แต่ดูเหมือนว่าผู้คนจะเสียสมาธิและลืมที่จะ ตอบคำถามจริงๆ

นี่คือแนวทางของฉันในการแทรกอักขระตัวเดียว:

:noremap <key> i <Esc>r

ฉันมักจะพบว่าฉันต้องแทนที่ ลบ หรือเพิ่มอักขระตัวเดียวบ่อยมากหากฉันแก้ไขการพิมพ์ผิด ดังนั้น (ตอบกลับ) r, x และอะไรก็ตามที่เลือกสำหรับ <key> ในข้างต้นจะมีประโยชน์มาก

โปรดทราบว่า . ยังมีประโยชน์เป็นพิเศษสำหรับงานประเภทนี้อีกด้วย มันทำซ้ำการกระทำก่อนหน้า

โดยส่วนตัวแล้ว ฉันจะแมปฟังก์ชันนี้กับคีย์ที่มีค่าเท่านั้นเมื่อฉันทำงานที่ฉันใช้มันบ่อยพอที่จะพิสูจน์ให้เห็นถึงการครอบครองจุดสำคัญบนคีย์บอร์ด (เช่น การแก้ไขการพิมพ์ผิด) เพราะจริงๆ แล้ว มันจะบันทึกการกดแป้นพิมพ์เพียงครั้งเดียวต่อ ใช้และนั่นก็ต่อเมื่อ <key> ไม่ใช่ชุดค่าผสม ซึ่งแน่นอนว่าเป็นการจำกัดความพร้อมใช้งาน

person James Haigh    schedule 01.03.2014
comment
บางทีมันอาจจะบันทึกการกดปุ่มเพียงครั้งเดียว แต่ยังช่วยประหยัดค่าใช้จ่ายทางจิตในการสลับโหมดด้วย ซึ่งน่าจะรู้สึกว่ามีความสำคัญในกลุ่ม - person Adam Tolley; 10.06.2016
comment
การแมปนี้ ใช้งานไม่ได้กับ . - person Sparhawk; 29.05.2017

ฉันจับคู่บางสิ่งกับคีย์ <leader> ของฉัน (\ โดยค่าเริ่มต้น):

" # comment the current line
nnoremap <leader>d I#<ESC>

" block comment in visual mode
vnoremap <leader>c <ESC>'<O/*<ESC>'>o*/<ESC>V'<k

หากคุณต้องการเพิ่ม # ที่จุดเริ่มต้นของกลุ่มบรรทัด ให้ทำดังนี้:

  1. <ctl-v>
  2. j (กี่ครั้งก็ได้ตามความจำเป็น)
  3. I#
  4. <esc>
person Wayne    schedule 18.01.2014

คุณสามารถใช้การบันทึก จากโหมดปกติ ให้พิมพ์:

qlml0i#<press escape>`lq

จากนั้นหากต้องการแสดงความคิดเห็นในบรรทัด เพียงกด @l

person Community    schedule 17.01.2014

การทำแผนที่เป็นกลุ่มนั้นง่ายมากจนฉันอาจทำอะไรแบบนั้น

:nmap CC I#<Esc>:w<CR>

ในขณะที่บิน. ถ้าฉันคุ้นเคย ฉันจะเพิ่มมันลงในไฟล์ vimrc ของฉัน

:help key-mapping
:help usr_40.txt
person benjifisher    schedule 18.01.2014

จริงๆ แล้ว มีปลั๊กอินที่คุณอาจต้องการดู:

http://www.vim.org/scripts/script.php?script_id=1218

มันถูกออกแบบมาโดยเฉพาะเพื่อจุดประสงค์นั้น

person ben    schedule 17.01.2014

ฉันชอบปลั๊กอิน tComment เป็นพิเศษ gcc เพื่อแสดงความคิดเห็นในบรรทัด ทำซ้ำเมื่อไม่ใส่ข้อคิดเห็น หลายบรรทัด การเคลื่อนไหว ฯลฯ

person rojs    schedule 18.01.2014