แก้ไขข้อความพร้อมตัวเลือกแยกหน้าจอ


26

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

ฉันไม่รู้ว่าฉันทำให้ตัวเองชัดเจน แต่ "หน้าจอแยก" เป็นวิธีเดียวที่จะอธิบายสิ่งที่ฉันต้องการบรรลุ ฉันต้องการใช้กับโปรแกรมโดยเปิดไฟล์มากกว่าหนึ่งไฟล์เพื่อแก้ไข โปรดทราบว่าฉันยังใหม่กับทั้ง vi และ emacs ถ้าสิ่งเหล่านี้สามารถทำสิ่งนี้ได้ นอกจากนี้ถ้าต้องทำผ่านเทอร์มินัลเทอร์มินัลสามารถทำได้ในเทอร์มินัลเดียวกันโดยไม่คำนึงถึงขนาดของหน้าจอหรือไม่?


1
ฉันรู้ว่าคุณถามเฉพาะเกี่ยวกับบรรณาธิการและไม่ขั้ว แต่ฉันคิดว่ามันคุ้มค่าที่จะต้องทราบสำหรับผู้เข้าชมในอนาคต: จำลองสถานีterminatorยังมีคุณสมบัติของหน้าจอแยก: ctrl + shift + eจะแบ่งแนวตั้งและctrl + shift + oจะแบ่งตามแนวนอน (และยังctrl + shift + tจะเปิดแท็บใหม่)
Carlos Campderrós

@ CarlosCampderrósฉันจะจำไว้เสมอขอบคุณ!
วันที่

1
@ CarlosCampderrós: ​​คุณสามารถใช้มัลติเพล็กเซอร์เช่นหน้าจอหรือ tmux เพื่อให้ได้สิ่งนั้นในเทอร์มินัลอีมูเลเตอร์อื่น ๆ แน่นอนว่าข้อเสียคือคุณต้องจำไว้ว่าให้รันก่อน แต่ความยืดหยุ่นน่าจะคุ้มค่า
Phoshi

คำตอบ:


38

vim สามารถทำได้อย่างง่ายดาย:

ctrl+ ws- แบ่ง windows

ctrl+ ww- สลับระหว่าง windows

ctrl+ wq- ออกจากหน้าต่าง

ctrl+ wv- แบ่งหน้าต่างในแนวตั้ง

:sp filename

จะเปิดfilenameในบัฟเฟอร์ใหม่และแยกหน้าต่าง

คุณสามารถทำได้

vim -o file1 file2

เพื่อเปิดไฟล์ในเค้าโครงหน้าจอแยก แทนที่-oด้วย-Oสำหรับการแบ่งแนวตั้งแทนแนวนอน


4
หรือพิมพ์:help CTRL-Wเพื่อดูการทำงานของหน้าต่างแยกทั้งหมด
แบร์นฮาร์ด

1
ว้าวเยี่ยมมาก! ฉันยังสะดุดกับ ": แยก" แต่ก็แยกตามแนวนอนเท่านั้น คุณช่วยกรุณารวมเสียงเรียกเข้าเวอร์ชั่นนี้ได้ไหม ขอบคุณ!
วันที่

@Eve ฉันใช้ VIM (Vi IMproved) 7.3
เร่ง

1
@Eve - คุณยังสามารถใช้:vsplitเพื่อสร้างการแบ่งแนวตั้งและ:splitยอมรับชื่อไฟล์หรือคำสั่งได้
ไม่มีประโยชน์

1
และเช่น<C-w>h/ j / k / l จะย้ายระหว่างหน้าต่างในทิศทางเฉพาะ<C-w>H/ J / K / L (พิมพ์ใหญ่) จะย้ายหน้าต่างไปในทิศทางนั้น
Izkata

13

สิ่งนี้สามารถทำได้โดยใช้ Emacs มันทำงานได้ใน GUI และในโหมดเทอร์มินัล คุณสามารถแยกได้หลายครั้ง นี่คือชุดค่าผสมพื้นฐานบางอย่าง:

Cx 2 แยกหน้าต่างที่เลือกออกเป็นสองหน้าต่างหน้าต่างหนึ่งอยู่เหนือหน้าต่างอื่น (แยกหน้าต่างด้านล่าง)
Cx 3 แยกหน้าต่างที่เลือกออกเป็นสองหน้าต่างวางเรียงกัน (แยกหน้าต่างขวา)
C-Mouse-2 ในบรรทัดโหมดของหน้าต่างแยกหน้าต่างนั้น

ที่มา: http://www.gnu.org/software/emacs/manual/html_node/emacs/Split-Window.html


1
สำหรับใครที่ไม่คุ้นเคยกับEmacsคำศัพท์เป็นมูลค่า noting ว่า Emacs หน้าต่างคือสิ่งที่บรรณาธิการอื่น ๆ อีกมากมายเรียกหน้าจอหรือแผง เฟรม Emacs เป็นสิ่งที่คนอื่นเรียกว่าหน้าต่าง (เรียกว่าเฟรมเพราะหน้าต่างที่อยู่ภายในนั้นมีกรอบโดยการตกแต่งเดสก์ท็อป (แถบชื่อและเส้นขอบ) หรือจากเทอร์มินัล ... Windowsมีบัฟเฟอร์ (ข้อความบางตัว ไฟล์).
Peter.O

1
@ Peter.O - ไม่เพียง แต่สำหรับผู้ที่ไม่คุ้นเคยกับ Emacs ... ฉันใช้ Emacs มานานกว่า 5 ปีแล้วและไม่สามารถอธิบายความแตกต่างได้ ฉันแค่ใช้มัน
jordanm

11

ด้วยความที่เป็นกลุ่มคุณสามารถใช้หรือsplitvsplit

คนแรกจะแยกออกเป็นสองส่วนและคนที่สองจะแยกในแนวตั้ง

CTRLw จากนั้นเพื่อนำทางผ่านหน้าจอแยก

คุณยังสามารถใช้แท็บ tabnew filenameจะเปิดชื่อไฟล์ในแท็บใหม่ คุณสามารถใช้tabnextและ:tabpreviousเพื่อนำทางระหว่างแท็บต่างๆ

ฉัน personnaly แผนที่ลูกศรซ้ายและขวาเพื่อนำทางระหว่างแท็บ:

map <right> :tabnext<CR>
map <left> :tabprevious<CR>
inoremap <right> <ESC>:tabnext<CR>a
inoremap <left> <ESC>:tabprevious<CR>a

1
นอกจากนี้ปลั๊กอิน NERD_tree สามารถใช้เพื่อแสดงแผนผังไดเรกทอรีในการแยกต่างหาก ( vim.org/scripts/script.php?script_id=1658 )
Bernhard

7

เคท

โปรแกรมแก้ไขข้อความขั้นสูงของ KDE มีคุณสมบัติที่ดีมาก
มันมีทุกสิ่งที่คุณอธิบายไว้ในคำถามและอื่น ๆ อีกมากมาย

ดูตัวเอง:

ภาพหน้าจอ

การแยกมุมมองไปดู → แบ่งมุมมอง จากนั้นคุณสามารถเลือกหนึ่งในตัวเลือกเหล่านี้:

  • แยกแนวตั้ง ( Ctrl+ Shift+ L)
  • ขอบเขต Horizo ​​n แยก ( Ctrl+ Shift+ T)
  • ปิดมุมมองปัจจุบัน ( Ctrl+ Shift+ R)

เพื่อให้ได้รูปแบบที่คล้ายคลึงกันบนหน้าจอนี้, Split แนวตั้งให้คลิกที่มุมด้านล่างแล้วSplit แนวนอน

แน่นอนว่าขอบเขตของมุมมองสามารถเปลี่ยนแปลงได้โดยการลากเส้น (ตัวแยก) ระหว่างมุมมองเหล่านั้น ในการสลับระหว่างมุมมองการใช้F8และ+ShiftF8

อย่างไรก็ตาม Kate มีโหมด VI ที่เรียกว่า( การตั้งค่ากำหนดค่า Kate …แก้ไข →โหมดอินพุต VI) จากนั้นทางลัดสำหรับการแยกมุมมองจะเหมือนกับใน Vim (ดูคำตอบนี้ )


7

joe( บรรณาธิการของ Joe ) สามารถทำได้เช่นกัน:

ctrl+ ko- แบ่งหน้าต่างตามแนวนอน

ctrl+ kp- เปลี่ยนเป็นหน้าต่างก่อนหน้า

ctrl+ kn- เปลี่ยนเป็นหน้าต่างถัดไป

ctrl+ ke- เปิดไฟล์ใหม่ในหน้าต่างปัจจุบัน

ctrl+ kg- เพิ่มความสูงของหน้าต่างปัจจุบัน

ctrl+ kt- ลดขนาดความสูงของหน้าต่างปัจจุบัน

ctrl+ ki- ซ่อนหน้าต่างทั้งหมดยกเว้นหน้าต่างปัจจุบันกดอีกครั้งเพื่อแสดงหน้าต่างทั้งหมดอีกครั้ง

ctrl+ cหรือctrl+ kx- ปิดหน้าต่าง



4

หากคุณสนใจที่จะใช้ VIM ให้ดีขึ้นลองดูvimcasts.orgมันมีวิดีโอสอนที่เป็นมิตรมากมาย อันนี้โดยเฉพาะอย่างยิ่งสำหรับมายากลหน้าจอแยก

สนุก!


เยี่ยมมากขอบคุณมาก! ฉันต้องการสิ่งนี้เพิ่มเติม แต่ฉันอนุญาตเพียงหนึ่งเท่านั้น
วันที่

2

เกี่ยวกับต้นไม้ไฟล์ฉันใช้ NERDtree กับ Vim เป็นส่วนตัว มันต้องใช้เชื้อโรค ฉันพบคำสั่งให้เปิดต้นไม้ ( :NERDtree toggle, iirc) ให้ยาวหน่อยดังนั้นฉันจึงทำการแมป<F2>ใหม่ หากคุณกำลังทำงานในโครงการที่มีไฟล์จำนวนมากในไดเรกทอรีจำนวนมาก (คิดว่าโครงการ Rails) เป็นเรื่องที่ดีมาก

แก้ไข:

NERDtree เปิดใช้ Github: https://github.com/scrooloose/nerdtree

นี่คือการแมปที่ฉันใช้ใน. vimrc ของฉัน: map <F2> :NERDTreeToggle<CR>


ขอบคุณฉันอาจมีคำถามอื่นเกี่ยวกับเรื่องนี้ ที่ฉันจองไว้อีกครั้ง ;)
อีฟ

1

ผมใช้tmuxและvimสำหรับการแก้ไขแยกหน้าจอในสภาพแวดล้อมที่สถานีตาม แต่คุณสามารถใช้บรรทัดคำสั่งแก้ไขข้อความใด ๆ ที่ใช้สำหรับการนี้ (เช่นnano, emacsฯลฯ )

tmuxสั้นสำหรับ "เทอร์มินัลมัลติเพล็กเซอร์" และอนุญาตให้คุณสร้างเซสชันที่มีเทอร์มินัลหลายเครื่องทำงานใน "windows" แยกต่างหากและ "บานหน้าต่าง" ภายในหน้าต่างเหล่านี้ซึ่งเป็นสิ่งที่ทำให้คุณสามารถแยกหน้าจอได้ tmuxถูกรวมอยู่ในที่เก็บของลีนุกซ์และ BSD จำนวนมาก ฉันพบว่านี่เป็นตัวเลือกที่ยืดหยุ่นที่สุดในการเขียนโปรแกรมเนื่องจากฉันสามารถเพิ่มการแยกและหน้าต่างที่มีเทอร์มินัลซึ่งฉันสามารถรวบรวมรหัสและใช้ระบบควบคุมเวอร์ชันเช่นเดียวgitกับการแก้ไขโค้ดของฉัน

นี่คือตัวอย่างของวิธีการที่ฉันจะสร้างหน้าจอแยกการแก้ไขเซสชั่นการใช้และtmuxvim

ก่อนเปิดเทอร์มินัล ในคำสั่งด้านล่างเขียนหลังจาก$ที่ออกจากบรรทัดคำสั่ง tmuxนี้ใช้ค่าเริ่มต้นที่สำคัญในการผูก

  1. เริ่มเซสชัน tmux ใหม่ ที่นี่เราทำหนึ่งเรียกว่า "การเข้ารหัส":

    $ tmux new -s coding

    tmux เพิ่งเปิด

  2. กดCtrl+ bตามด้วยทั้ง%สำหรับการแบ่งตามแนวตั้งหรือ"สำหรับการแบ่งตามแนวนอน

    แยกตามแนวตั้ง

    แยกแนวนอน

  3. คุณสามารถย้ายไปมาระหว่างแยก (หรือในtmuxการพูดจาที่ "บาน") โดยการกดCtrl+ ตามด้วยbo

  4. ตอนนี้เปิดตัวแก้ไขข้อความด้วยไฟล์อะไรก็ตามที่คุณต้องการแก้ไขในแต่ละบานหน้าต่าง ที่นี่ฉันเพิ่งเปิดไฟล์ข้อความสองไฟล์โดยใช้vimเช่น

    $ vim file1.txt

    สวิทช์บานหน้าต่าง: Ctrl+ ตามด้วยbo

    $ vim file2.txt

    การแก้ไขสองไฟล์พร้อมกัน

tmuxเป็นขั้นสูงมากช่วยให้หลายบานหน้าต่างในหน้าต่างเดียวจัดเรียงในหลากหลายวิธีและvimช่วยให้คุณเปิดไฟล์ข้อความหลายไฟล์พร้อมกันในแท็บ ฉันมักจะใช้ทั้งแท็บในvimและบานหน้าต่างtmuxเพื่อให้ฉันแก้ไขการควบคุมเวอร์ชันและรหัสการแก้ปัญหาพร้อมกัน หากคุณมีเวลาลงทุนในการเรียนรู้แป้นพิมพ์ลัดและคุณสมบัติต่างๆของtmuxมันอาจเป็นสภาพแวดล้อมการพัฒนาที่ทรงพลังมาก

tmuxโกงแผ่นสำหรับการเริ่มต้นออก: จอ dayid และ tmux แผ่นโกง

บทช่วยสอนเกี่ยวกับแท็บในvim: เคล็ดลับกลุ่ม: การใช้แท็บ


0

ฉันเองจะใช้หน้าจอหรือ tmux ทั้งช่วยให้คุณสามารถเปิดหลายแผง แต่ฉันคิดว่า tmux จะดีกว่าในการกู้คืนเซสชันหลายแผงกว่าหน้าจอ คุณจะได้รับสิทธิประโยชน์เพิ่มเติมจากความสามารถในการเชื่อมต่อกับเซสชันถ้าคุณยกเลิกการเชื่อมต่อจากเซสชันเดสก์ท็อปในเครื่องของคุณและจากนั้น SSH คุณยังสามารถแบ่งปันเซสชันกับผู้ใช้รายอื่นเช่นกันสำหรับการทำงานร่วมกัน


นี่คือ downvote เพราะคุณไม่ได้ใช้ shift
peterh พูดว่าคืนสถานะโมนิก้า

0

ข้างvim, emacsและjoeบรรณาธิการที่นี่มีบางคนอื่น ๆ ขั้ว (TTY) / x-ขั้วบรรณาธิการจำลองที่สามารถแสดงอย่างน้อยสองไฟล์ในเวลาเดียวกัน อาจไม่ใช่มีดทหารสวิสที่น่ารักที่สุด แต่การเรียนรู้ไม่ได้สูงชันในทุกกรณี:

1) mcedit

เป็นส่วนหนึ่งของ Midnight Commander (ตัวจัดการไฟล์โหมดข้อความติดตั้ง apt-get install mcใน Distros ที่ใช้ Debian)

mcedit

2) wpe \ xwpe

มีจำหน่ายapt-get install xwpeใน Dedbian distros อย่างไรก็ตามดูเหมือนว่าเป็นการป้องกันแบบหยุด

xwpe

3) nfte \ efte

eFTE apt-get install efteยังสามารถใช้ได้ผ่านทาง

efte

ในทางกลับกันสำหรับ X-window ยังมีเครื่องมือ "diff" ของ GUI บางตัวที่อาจเป็นประโยชน์สำหรับวัตถุประสงค์นี้ ใน Mint Linux ของฉันฉันมีอย่างน้อยสอง:

4) xxdiff

แอปพลิเคชันที่ใช้ Qt ( apt-get install xxdiff)

xxdiff

ไม่ได้ผ่านการทดสอบและได้แสดงให้เห็น แต่ยังมีอยู่Fldiffโดยใช้จานแสง Toolkit (FLTK) xxdiffแต่แรงบันดาลใจส่วนหนึ่งใน นอกจากนี้ในที่เก็บอย่างเป็นทางการ ( apt-get install fldiffและคุณสามารถทดสอบด้วยตัวเอง) mgdiffเช่นเดียวกับที่นำไปใช้กับ

5) kdiff3

แอปพลิเคชัน KDE ที่คล้ายกัน ( apt-get install kdiff3)

kdiff3


0

คุณสามารถใช้โปรแกรมแก้ไขข้อความอะตอมของ github มันมาพร้อมกับฟังก์ชั่นแยกหน้าจอ

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