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

การเพิ่มการไฮไลต์ให้กับเอกสารนอกเหนือจากการเน้นไวยากรณ์ (เช่น hlsearch หรือ: match)

10
ฉันจะล้างคำที่ไฮไลต์ในเอกสารปัจจุบันได้อย่างไร (เช่นหลังจากค้นหาคำ)
เมื่อคุณค้นหาคำในไฟล์ที่มีลักษณะคล้าย/console.logกันอินสแตนซ์ทั้งหมดของconsole.logจะถูกเน้น เมื่อคุณไม่สนใจสิ่งเหล่านี้การไฮไลต์อาจทำให้เสียสมาธิ /asntehuaกลยุทธ์ปัจจุบันของฉันสำหรับการลบไฮไลต์คือการทำสิ่งที่ชอบ มีวิธีที่เหมาะสมในการลบคำนี้ออกหรือไม่?
61 search  highlight 

3
ตัวแยกแบ่งเป็นกลุ่มจะน้อยกว่าความกว้างคอลัมน์เต็มได้ไหม
ฉันใช้ตัวจัดการหน้าต่างแบบเรียงต่อกัน (ยอดเยี่ยม) + เทอร์มินัลมัลติเพล็กเซอร์ (tmux) + แยกด้านในของกลุ่ม ฉันไม่มีการตกแต่งหน้าต่างเลยดังนั้นคุณจะไม่มีการแยกภาพระหว่างพวกเขาเลยถ้าเนื้อหาของโปรแกรมไม่ได้แจก ฉันค่อนข้างสบายใจกับกระบวนทัศน์นี้เพราะฉันใช้จอภาพหลายจอและจัดกลุ่มงานตามหน้าจออยู่แล้ว หากสองหน้าต่างไม่มีเหตุผลที่จะอยู่เคียงข้างพวกเขาจะไม่อยู่ที่นั่นตั้งแต่แรก อย่างไรก็ตามสิ่งนี้ทำให้เกิดความไม่ลงรอยกันทางสายตาเล็กน้อยซึ่งความแตกต่างที่เห็นได้ชัดเจนที่สุดคือความหมายที่น้อยที่สุด หน้าต่าง Xorg ‹|› window = ไม่มีอะไรเลย บานหน้าต่าง Tmux ‹|› pane = 1px divider line Vim split ‹|› split = 1 คอลัมน์สีกว้างอักขระ นี่คือตัวอย่างที่แสดงหน้าต่างด้านข้างหน้าต่างบานหน้าต่างและแผงแยก: แม้ว่าจะไม่ได้คลิกไปที่เวอร์ชันความละเอียดเต็ม แต่เส้นแบ่งสีขาวที่คุณเห็นคือรอยแตกที่สำคัญที่สุดบนหน้าจอ (โปรดสังเกตว่าคอลัมน์สีเทาที่ด้านขวาของเซสชันเป็นกลุ่มนั้นเป็นไฮไลต์คอลัมน์ที่ 80 ไม่ใช่ตัวแบ่งใด ๆ ถึงแม้ว่าฉันมักจะทำงานในขนาดนั้น) ฉันรู้วิธีเปลี่ยนอักขระที่วาดในการแยกหรือลดความคมชัดของสี สิ่งที่ฉันต้องการจะทำคือใช้แถบแยกเดียวกับ tmux ที่ไม่ใช้ความกว้างใด ๆ เพราะมันถูกวาดในระหว่างคอลัมน์มากกว่าหนึ่ง เป็นไปได้ด้วย vim ตาม terminal? …

6
ตั้งค่าสีเคอร์เซอร์ที่แตกต่างกันเมื่อใช้คำที่เน้น
ด้วย colourscheme ปัจจุบันที่ฉันใช้มันยากที่จะหาตำแหน่งที่เคอร์เซอร์วางไว้เมื่อนำทางผ่านผลการค้นหา สีที่ไฮไลต์และสีของเคอร์เซอร์ผสมกันทำให้หาเคอร์เซอร์ได้ยาก ฉันจะตั้งค่าสีเคอร์เซอร์ได้อย่างไรเมื่ออยู่ในคำที่เน้นสี

8
วิธีการปิด "hlsearch" โดยอัตโนมัติหลังจากฉันค้นหาเสร็จแล้วจะทำอย่างไร
ฉันชอบการตั้งค่า "hlsearch" แต่หลังจากฉันค้นหาเสร็จฉันก็พบว่ามันน่ารังเกียจ โดยเฉพาะอย่างยิ่งถ้าฉันค้นหาบางอย่างที่มีการแข่งขันมาก ฉันรู้ว่าฉันสามารถปิดสิ่งนี้ด้วย :set nohlsearch แต่มันใช้การกดแป้นทั้ง 16 ครั้งและน่ารำคาญยิ่งกว่านั้นฉันต้องกลับไปค้นหาต่อไปด้วย :set hlsearch มีวิธีที่ฉันสามารถสลับ hlsearch โดยอัตโนมัติเมื่อฉันเริ่มค้นหาและปิดเมื่อฉันค้นหาเสร็จหรือไม่ ตัวอย่างเช่นหากฉันเข้าสู่โหมดแทรกหรือแก้ไขข้อความให้ปิด hlsearch โดยไม่ต้องกดแป้นเพิ่มเติมใด ๆ
19 search  highlight 


2
ไฮไลต์ข้อความบรรทัดที่เหมือนกันโดยอัตโนมัติ
ฉันเห็นนินจาที่มีฝีมือทำในขณะนี้กลับมา แต่ฉันก็ไม่รู้จะเริ่ม A) มีวิธีการตั้งค่าสีพื้นหลังของขอบเพื่อให้เส้นที่ต่อเนื่องกันที่มีเนื้อหาเหมือนกันถูกเน้น B) หากใครบางคนรู้วิธีการทำเช่นนี้การปรับแต่งที่ดีสำหรับสิ่งนี้จะเกิดขึ้นหากการไฮไลต์เกิดขึ้นในบรรทัดที่ต่อเนื่องกัน แต่ให้พิจารณาเฉพาะคำแรก (ไม่ใช่ทั้งบรรทัด) การปรับแต่งครั้งที่สองหากการไฮไลต์สามารถกำหนดค่าให้กับสีที่แตกต่างกันนั้นขึ้นอยู่กับจำนวนบรรทัดที่ตรงกัน (หรือคำที่ขึ้นอยู่กับ AB นั้นทำงานอยู่) ดังนั้นเราจึงมีเพียงสองบรรทัดติดต่อกันที่ตรงกับสีเขียว, 3-5 บรรทัดติดต่อกันแล้วสีส้ม, 6+ แล้วสีแดง

2
อะไรคือความแตกต่างระหว่างการทำงาน: nohlsearch และ: set nohlsearch?
ผมสังเกตเห็นว่าเมื่อฉันใช้ว่ามันไม่ได้ทำจริงเป็นสิ่งเดียวกับ:nohlsearch:set nohlsearch โดยเฉพาะอย่างยิ่งการhlsearchตั้งค่าไม่ได้ปิดจริง (ซึ่งเป็นสิ่งที่:set hlsearch) สำเร็จ เพื่อแสดงให้เห็นถึงสิ่งที่ฉันหมายถึง: :set hlsearch :nohlsearch :echo &hlsearch ภาพนี้1( hlsearch ยังคงตั้งค่า! ) :set hlsearch :set nohlsearch :echo &hlsearch พิมพ์นี้0เพราะเราปิด hlsearch โดยใช้วิธีมาตรฐานเพื่อปิดการตั้งค่าในกลุ่ม ดังนั้นฉันจึงสงสัยเพราะจะต้องมีเหตุผลที่แท้จริงสำหรับ:nohlsearchคำสั่ง ex เหตุผลที่ผมสนใจก็คือว่าตอนนี้ผมมีความจำเป็นในการเขียนสคริปต์ที่เป็นกลุ่มของฉันในการทดสอบไม่ว่าจะเป็นไฮไลท์ที่มีการใช้งานการค้นหาและตั้งแต่ผมใช้:nohlsearchแทน "ชุด nohlsearch" ในการเขียนสคริปต์อื่น ๆ ของฉันฉันทดสอบเสมอผลตอบแทน&hlsearch 1ดังนั้นฉันสงสัยว่าฉันกำลังเปลี่ยนอะไรโดยไม่ใช้nohlsearchคำสั่ง ex อีกต่อไป
13 search  highlight 

1
มี incsearch สำหรับคำสั่ง replace หรือไม่?
ฉันชอบincsearchฟังก์ชั่นของ Vim จริงๆ มีวิธีที่จะมีมันหรือสิ่งที่คล้ายกับมันทำงานในขณะที่ฉันทำแทน? ตัวอย่างเช่นหากอยู่ในโหมดปกติฉันพิมพ์: :%s/potato/ ฉันจะได้รับการpotatoเน้นทั้งหมดในไฟล์ของฉันเหมือนที่พวกเขาเน้นโดยincsearchเมื่อฉันเขียน /potato ? สิ่งนี้จะช่วยฉันได้มากเมื่อใช้นิพจน์ทั่วไป สิ่งที่ดีมากที่เป็นไปได้คือเมื่อฉันเขียนสิ่งนี้: :%s/potato/banana/ มันจะแทนที่potatos ด้วยbananas และเน้นพวกมัน - บางทีการเปลี่ยนควรจะเป็นสีอื่น ไม่ควร "ยอมรับ" การเปลี่ยนแปลงจนกว่าฉันจะกด Enter) ตอนนี้ฉันใช้ neovim ในกรณีที่ช่วยได้

3
ไฮไลต์เลิกทำในกลุ่ม
ฉันกำลังพยายามยกเลิกการเน้นใน Vim เช่นการกำหนดค่าเริ่มต้นของ spacemacs บางครั้งเมื่อฉันต้องการเลิกทำอย่างรวดเร็วฉันไม่สามารถรับรู้สิ่งที่เปลี่ยนแปลงไปได้เพราะมันเกิดขึ้นทันที ดังนั้นฉันจึงพยายามที่จะมีสิ่งนี้เมื่อกดยกเลิก: ใครมีความคิดวิธีการทำเช่นนี้ในกลุ่ม? (ฉันมีปลั๊กอิน Gundo อยู่แล้วฉันต้องการทำให้การยกเลิกเริ่มต้นราบรื่นยิ่งขึ้น) แก้ไข : ปลั๊กอินundotreeใช้งานได้ ( Gundoไม่เน้นการเปลี่ยนแปลง) เพียงใช้UndotreeToggleคำสั่งและการเปลี่ยนแปลงในอนาคตทั้งหมดในไฟล์จะถูกเน้น

1
กฎไฮไลต์ที่กำหนดเองอยู่ที่ไหน
บางครั้งฉันต้องการแทนที่ไวยากรณ์เริ่มต้นที่เน้นสีและสไตล์ด้วยการตั้งค่าของฉันเอง ฉันคิดว่าวิธีที่เหมาะสมที่สุดในการทำเช่นนี้คือการสร้างสีของฉันเอง อย่างไรก็ตามฉันมีคำถามสองสามข้อ ถ้าผมต้องการตั้งไฮไลท์สำหรับกลุ่มไวยากรณ์ที่เฉพาะเจาะจงในภาษาเฉพาะไม่นี้เป็นของในสกีมสีของฉันหรือมันจะดีกว่าที่จะวางไว้ในafter/syntax/[filetype].vim? highlight jsAssignExpIdent cterm=bold gui=bold ดูเหมือนแปลกเล็กน้อยที่จะวางกฎเฉพาะภาษาที่ไม่ชัดเจนใน colorcheme เนื่องจากจะมีการโหลดภาษาใดก็ตามที่ฉันกำลังทำอยู่ after/syntax/[filetype].vimบางครั้งฉันสร้างกฎไวยากรณ์ใหม่สำหรับภาษาเฉพาะใน ในกรณีที่ผู้ใช้รายอื่นต้องการใช้ส่วนขยายเหล่านี้มันจะเหมาะสมกับฉันหรือไม่ที่จะต้องจัดทำกฎการไฮไลต์เริ่มต้นที่นั่นซึ่งลิงก์ไปยังกลุ่มไฮไลต์เริ่มต้นทั่วไป หากผู้ใช้รายอื่นต้องการแทนที่สีเน้นสีนั้นพวกเขาควรทำเช่นไร? ::::: after/syntax/asm.vim ::::: syn match asmHexNumber /\(0x\|\$\)[0-9A-Fa-f]\+/ highlight default link asmHexNumber Number

7
วิธีค้นหาบรรทัดที่ตรงกับบรรทัดปัจจุบันเป็นกลุ่ม
ฉันมักจะค้นหาคำด้วย:/stringแต่ถ้าฉันต้องค้นหาทั้งบรรทัดปัจจุบันวิธีการทำ event: 1 beacon: 0x02 //line 1 event: 19 beacon: 0x02 //line 2 event: 1 beacon: 0x03 //line 3 event: 1 beacon: 0x02 //line 4 event: 8 beacon: 0x01 //line 5 event: 19 beacon: 0x02 //line 6 event: 1 beacon: 0x02 //line 7 ตัวอย่างเช่นหากcursorปัจจุบันอยู่ที่line 1วิธีการค้นหาในทำนองเดียวกันกับ:/ข้อความที่มีทั้งบรรทัดปัจจุบัน เคอร์เซอร์ควรข้ามจากนั้นไปที่การจับคู่line 4และอีกครั้งเพื่อline 7

1
ฉันจะไฮไลต์ชื่อการจับคู่“%” (เช่น if / end, for / end) ที่กำหนดโดย matchit.vim ในการเลือกได้อย่างไร
ปัจจุบัน Vim ของฉันเน้นการจับคู่วงเล็บ, เครื่องหมายคำพูด, ฯลฯ ด้วยพื้นหลังสีฟ้าและพื้นหน้าสีขาว - เคอร์เซอร์สามารถเลื่อนไปมาระหว่างสิ่งเหล่านี้%ได้ ขอบคุณ matchit.vim ของฉันฉันยังสามารถสลับกับ%ระหว่าง if / end for / end ฯลฯ - อย่างไรก็ตามสิ่งเหล่านี้ไม่ได้เน้นที่การเลือก ฉันจะไฮไลต์คู่จับคู่เหล่านี้โดยอัตโนมัติเมื่อเลือกได้อย่างไรเช่นจะทำในวงเล็บโดยอัตโนมัติ นอกจากนี้ฉันจะแก้ไขสีพื้นหลังที่ใช้สำหรับคู่เหล่านี้ได้:highlightอย่างไร ขอบคุณล่วงหน้า. ฉันได้อัปเดตคำตอบโดย @Tommy A ด้านล่างเพื่อบัญชีสำหรับmatchit.vimกลุ่มที่ระบุไม่ดีและสถานการณ์อื่น ๆ ที่%ผู้ประกอบการไม่ได้กลับเคอร์เซอร์ไปที่ตำแหน่งเดิมเคย ตรวจสอบความแตกต่างในการวนรอบ "ในขณะที่" ใครก็ตามที่อ่านหัวข้อนี้ควรใช้เวอร์ชั่นนี้เพื่อหลีกเลี่ยงการวนซ้ำไม่ จำกัด : function! s:get_match_lines(line) abort " Loop until `%` returns the original line number; abort if " (1) …

1
หากต้องการพิมพ์โดยเน้นผลลัพธ์การค้นหา
เมื่อเราค้นหารูปแบบเป็นกลุ่มการจับคู่มักจะเน้น อย่างไรก็ตามเมื่อเราพิมพ์ออกมาไฮไลท์จะหายไป ฉันพยายามทั้งสองและ:hardcopy > my_file.pdf :TOhtmlไม่คงไว้ซึ่งไฮไลต์ มีวิธีใดบ้างที่ฉันสามารถส่งออกเอกสารด้วยรูปแบบการจับคู่ที่เน้นสีไปยังไฟล์ pdf ฉันใช้ GVim 7.4 บนเครื่อง Win 7

1
ทำไมไฮไลท์ที่กำหนดเองใน vimrc ของฉันถูกลบหรือรีเซ็ตเป็นค่าเริ่มต้น
ฉันต้องการเน้น (เป็นส่วนหนึ่ง) ของสถานะของฉันด้วย%1*เช่น: set statusline=%1*%f%0* highlight User1 ctermbg=0 ctermfg=10 cterm=bold อย่างไรก็ตามสิ่งนี้จะปรากฏเป็น "ว่าง" เสมอ (สีเทอร์มินัลเริ่มต้น): ถ้าฉันพิมพ์:highlight User1มันจะแสดงUser1 xxx clearedและถ้าฉันพิมพ์:highlight User1 ctermbg=0 ctermfg=10 cterm=boldในหน้าต่างคำสั่งดูเหมือนว่าจะทำงาน ฉันจะใส่สิ่งนี้ลงใน.vimrcไฟล์ของฉันได้อย่างไร ไฟล์ vimrc เต็มของฉันที่ฉันใช้สำหรับทดสอบ: set nocompatible set background=light colorscheme default set laststatus=2 set statusline=%1*%f%0* highlight User1 ctermbg=0 ctermfg=10 cterm=bold

1
เลือกผลการค้นหาปัจจุบัน
ฉันได้hlsearchตั้งค่าไว้ แต่บางครั้งมันก็ทำให้ฉันนึกถึงว่าฉันได้เลือกข้อความค้นหาไว้แล้วและสามารถกดcเพื่อเปลี่ยนได้ คำที่ค้นหาอาจไม่ใช่ตัวอักษรจำนวนคำแม้แต่บรรทัดอย่างง่าย ๆ และอย่างไรก็ตามฉันไม่ต้องการนับ มีวิธีการvh(หรือch) พูดที่hทำงานจนกว่าการไฮไลต์ปัจจุบันหยุด?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.