ฉันจะค้นหาและแทนที่เหตุการณ์ทั้งหมด (ในไฟล์ทั้งหมด) ใน Visual Studio Code ได้อย่างไร


245

ฉันไม่สามารถหาวิธีการค้นหาและแทนที่คำทั้งหมดในไฟล์ต่าง ๆ โดยใช้ Visual Studio Code เวอร์ชัน 1.0

ฉันรู้สึกว่ามันน่าจะเป็นไปได้ตั้งแต่ทำ Ctrl + Shift + F ทำให้ฉันสามารถค้นหาโฟลเดอร์ได้ แต่ฉันไม่รู้วิธีดำเนินการจากที่นี่

ฉันดูด้วยการผสมผสานคีย์ต่างๆ https://code.visualstudio.com/Docs/customization/keybindings

แต่ฉันพบวิธีการแทนที่เหตุการณ์ทั้งหมดในไฟล์ open (Ctrl + h) เท่านั้น

ความช่วยเหลือทั้งหมดซาบซึ้งอย่างยิ่งนี่ทำให้ฉันเป็นบ้า

คำตอบ:


363

ฉันใช้ Visual Studio Code 1.8 และคุณลักษณะนี้มีให้ใช้งาน แต่มันเป็นเรื่องยากที่จะเข้าใจในตอนแรกและ (ในขณะที่เขียน) เอกสารไม่ได้อธิบายวิธีใช้อย่างชัดเจนดังนั้นนี่คือวิธีการทำงานทีละขั้นตอน:

เรียกใช้แทนที่ในไฟล์ (ใต้เมนูแก้ไขหรือด้วยทางลัดCtrl+ Shift+ H)

คุณจะเห็นอินพุตค้นหา / แทนที่มาตรฐานแทนที่บานหน้าต่างไฟล์ด้านซ้าย:

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

ป้อนสตริงการค้นหาและสตริงแทนที่จากนั้นกด Enter มันอาจปั่นป่วนเป็นครั้งที่สองในการค้นหาไฟล์ทั้งหมดจากนั้นมันจะแสดงการเปลี่ยนแปลงที่เสนอในไฟล์โครงการทั้งหมดของคุณ - แต่โปรดทราบว่ายังไม่มีการเปลี่ยนแปลงเหล่านี้! นี่คือสิ่งที่ดูเหมือนว่า:

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

ตอนนี้คุณต้องทำการเปลี่ยนแปลง (และหลังจากนั้นคุณต้องบันทึกไฟล์ที่แก้ไขแล้ว)

คุณสามารถทำการเปลี่ยนแปลงเหล่านั้นได้หลายวิธี:

1) ทำการเปลี่ยนแปลงทั้งหมดกับไฟล์ทั้งหมดในครั้งเดียว

คลิกที่ไอคอนแทนที่ถัดจากสตริงแทนที่ของคุณ(หมายเหตุ: คุณจะได้รับกล่องโต้ตอบเพื่อยืนยันการกระทำเป็นกลุ่มนี้)

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

2) ทำการเปลี่ยนแปลงทั้งหมดในไฟล์เดียวในครั้งเดียว

คลิกที่ไอคอนแทนที่ถัดจากชื่อไฟล์(หมายเหตุ: ไอคอนจะปรากฏขึ้นเฉพาะเมื่อคุณวางเมาส์เหนือแถวชื่อไฟล์)

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

3) ทำการเปลี่ยนแปลงเดียวในไฟล์เดียว

คลิกที่ไอคอนแทนที่ถัดจากการเปลี่ยนแปลงแต่ละรายการ: (หมายเหตุ: ไอคอนจะปรากฏขึ้นเฉพาะเมื่อคุณวางเมาส์เหนือแถวการเปลี่ยนแปลง)

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

สุดท้ายอย่าลืมบันทึก!

ไฟล์เหล่านั้นทั้งหมดได้รับการแก้ไขในตัวแก้ไขและยังไม่ได้บันทึกลงดิสก์

ใช้ไฟล์ -> บันทึกทั้งหมด (หรือCtrl+ Alt+ S)

อัปเดต:ฉันไม่แน่ใจว่าเมื่อมีการเพิ่ม แต่ถ้าคุณคลิกปุ่ม "แทนที่ทั้งหมด" และดูข้อความนี้การคลิก "แทนที่" จะเปลี่ยนและบันทึกไฟล์ทั้งหมดในคลิกเดียว:

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


1
เป็นไปได้หรือไม่ที่จะบันทึก 'search-replace' ฉันมักจะค้นหา 'class =' ​​และแทนที่ด้วย 'className ='
Rune Jeppesen

1
เป็นไปได้ไหมที่จะข้ามขั้นตอนสุดท้ายและทำการค้นหาแบบเงียบและแทนที่? หากฉันทำการค้นหาและแทนที่เล็กน้อยฉันไม่ต้องการบันทึกไฟล์แต่ละไฟล์
satJ

1
ฉันไม่แน่ใจคำตอบของคำถามเหล่านี้ แต่ @satJ โปรดทราบว่าCtrl+Alt+Sบันทึกไฟล์ที่แก้ไขทั้งหมดในครั้งเดียวดังนั้นจึงค่อนข้างง่ายและรวดเร็ว
Jeff Ward

พระเจ้าด่าว่าเป็นอันตรายเปลี่ยนไฟล์ทั้งหมดเป็นค่าเริ่มต้น มีคำสั่งให้ค้นหา / แทนที่ในไฟล์เดียวหรือไม่?
Alexander Mills

การบันทึกปัจจุบันเริ่มต้นทั้งหมดคือ Ctrl-k ตามด้วยตัวอักษร s Ctrl-k ตามด้วย Ctrl + w จะปิดหน้าต่างทั้งหมดของคุณหลังจากที่โปรแกรมเปิดขึ้นมา
รีเบคก้า

25

ปรับปรุง

ตั้งแต่เวอร์ชัน 1.3 (มิถุนายน 2559) สามารถค้นหาและแทนที่ใน Visual Studio Code ใช้ ctrl + shift + f คุณสามารถค้นหาและแทนที่เหตุการณ์ทั้งหมด

ดูเหมือนว่าจะเป็นไปไม่ได้ในขณะนี้ (เวอร์ชั่น 1.1.1 (เมษายน 2016))

"ถาม: เป็นไปได้ไหมที่จะค้นหาและแทนที่ทั่วโลก

ตอบ: คุณลักษณะนี้ยังไม่ได้ใช้ แต่คุณสามารถคาดหวังได้ว่าจะมีในอนาคต! "

https://code.visualstudio.com/Docs/editor/codebasics

ดูเหมือนว่าชุมชนนี้จะร้องขอเช่นกัน: https://github.com/Microsoft/vscode/issues/1690


files to includeในการค้นหาสิ่งที่อยู่ในโฟลเดอร์ที่เฉพาะเจาะจงเพียงแค่เพิ่มเส้นทางโฟลเดอร์ในสนาม คุณสามารถค้นหา / แทนที่สิ่งต่าง ๆ ได้แม้อยู่นอกพื้นที่ทำงาน ⚠มันไม่ได้ค้นหาในชื่อไฟล์ แต่อยู่ในไฟล์ (ใครรู้วิธีค้นหาชื่อไฟล์นอกเวิร์กสเปซ?)
JinSnow

22

ในการแทนที่สตริงในไฟล์เดียว (เปิดในปัจจุบัน): CTRL + H

สำหรับการแทนที่ในระดับพื้นที่ใช้งาน: CTRL + SHIFT + H


หมายเหตุ: คุณต้องกด Enter เพื่อให้การค้นหาทำงานเมื่อใช้ Ctrl + Shift + H
Aaron Franke

19

นี่เป็นวิธีที่ดีที่สุด

  1. ก่อนอื่นให้วางเคอร์เซอร์บนสมาชิกแล้วคลิก F2

  2. จากนั้นพิมพ์ชื่อใหม่และกดปุ่ม Enter สิ่งนี้จะเปลี่ยนชื่อเหตุการณ์ที่เกิดขึ้นทั้งหมดในทุกไฟล์ในโครงการ

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

สำหรับเครื่องมือที่ยอดเยี่ยมฉันขอแนะนำ: https://johnpapa.net/refactoring-with-visual-studio-code/


จะเป็นอย่างไรถ้าฉันต้องการเปลี่ยนชื่อไฟล์ที่เกิดขึ้นในไฟล์ปัจจุบันเท่านั้น?
temirbek

@temirbek ฉันติดตามคำขอนี้มาระยะหนึ่งแล้ว เป็นเวลา 2 ปีแล้วและยังไม่ได้ใช้งาน github.com/Microsoft/vscode/issues/14836
DonDaniel

สวัสดีมันเปลี่ยนชื่อโฟลเดอร์ที่เกี่ยวข้องและนำเข้าหรือไม่
Tamashi Kaizen

5

ในหน้าการผูกรหัสคีย์ Visual Studioส่วนการอ้างอิงแป้นพิมพ์ลัดมีลิงก์ไปยัง PDF สำหรับแต่ละระบบปฏิบัติการหลัก เมื่อเปิดแล้วให้ค้นหา "แทนที่ไฟล์" หรือทางลัดอื่น ๆ ที่คุณอาจต้องการ

อีกวิธีหนึ่งคือการใช้Command Palette ( ctrl/cmd+ shift+ P) ซึ่งคุณสามารถพิมพ์ "replace" เพื่อแสดงรายการคำสั่งที่เกี่ยวข้องทั้งหมดรวมถึงคำสั่งที่คุณต้องการ:

แทนที่ในไฟล์ctrl/cmd+ shift+H

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