Các g
tùy chọn (ví dụ s/pattern/replacement/g
) đối với nhiều công cụ mà sử dụng regex kiểu mẫu phù hợp và các :g
lệnh trong ed
, ex
, vi
, và vim
có sử dụng khá giống nhau và có nghĩa là: phù hợp với regex cho "toàn cầu", tức là, không dừng lại sau khi trận đấu đầu tiên.
Tôi có một câu hỏi hai lần về điều này:
- Cái nào xuất hiện trước,
:g
lệnh hoặcg
cờ khớp mẫu và trong công cụ nào? Có vẻ như hầu hết các công cụ (nhưsed
) sử dụngg
cờ trong khớp mẫu của chúng thực sự chỉ là mô phỏng trực tiếp hoặc gián tiếped
. Chẳng hạn, trong thời đại hậu Perl, hầu hết các công cụ sử dụng regex đều cho phépg
cờ vì Perl thực hiện và Perl, nó sẽ xuất hiện, vì nóed
->sed
->Perl
. Vì vậy, tôi sẽ không ngạc nhiên nếu câu trả lời là "chúng được giới thiệu đồng thời tronged
công cụ ban đầu và không có tiền lệ lịch sử nào vượt quá điều đó". - Tại sao điều này được gọi là
global
tùy chọn (hoặc lệnh)? Thực sự không có gì "toàn cầu" về nó; các:g
lệnh có một loạt các dòng giống như bất kỳ kháced
lệnh, vàg
lá cờ không mở rộng phạm vi tìm kiếm trong bất kỳ cách nào (nó chỉ cho phép nhiều hits). Tôi cho rằng tôi không thể nghĩ ra một cái tên hay hơn , nhưng cái được chọn có vẻ kỳ lạ đối với tôi, vì vậy tôi tự hỏi liệu có lý do nào cho nó mà tôi không nhìn thấy.
g
mang tính toàn cầu ở chỗ nó áp dụng lệnh (thường là một dòng một lần) cho một số dòng.