С помощью ctrl + (click in text)
(или cmd + (click in text)
на Mac) вы можете создавать несколько курсоров. Таким образом, вы можете добавить второй, чтобы изменить оба тега одновременно.
Это единственный метод, который я знаю.
Редактировать: есть ярлык ctrl + d
или cmd + d
, с помощью которого вы можете отмечать одинаковые вхождения текста.
Существует также пакет, который делает именно то, что вы хотите: https://github.com/dsandstrom/atom-double-tag
Мне нравится неизменность, потому что это означает, что мне не нужно доверять коду других людей, чтобы не возиться с объектами, которые, как я ожидаю, останутся такими же.
Когда вы передаете объект другому компоненту, например List
, вы находитесь во власти того, что делает этот компонент. Это особенно важно, когда вы возвращаете коллекции как свойства.
public class Foo {
private List<Bar> _barList;
public ICollection<Bar> BarList { get return _barList; }
}
Ничто не мешает потребителю этого класса очистить коллекцию от меня. Даже переключение возвращаемого типа на IEnumerable
не совсем безопасно. Ничто не мешает некоторому фрагменту плохо написанного кода привести его обратно к List
и вызвать .Clear ().
Однако, если я действительно хочу, чтобы коллекция оставалась последовательной, я мог бы переписать ее следующим образом
public class Foo {
private ImmutableCollection<Bar> _barList;
public ImmutableCollection<Bar> BarList { get { return _barList; } }
}
Теперь я ' m безопасен от необходимости доверять другому коду из-за неправильного использования моего класса. Они не могут это испортить.
Мне нравится преимущество неизменяемости: вам нужно проверять ее только один раз - при создании объекта. На самом деле это огромный бонус.