Найти и заменить все между фигурными фигурными скобками в vim [duplicate]

Различие может быть продемонстрировано в этом примере:

  1. сгенерировать матрицу
    >>> A = numpy.matrix(np.ones((3,3)))
    >>> A
    matrix([[ 1.,  1.,  1.],
            [ 1.,  1.,  1.],
            [ 1.,  1.,  1.]])
    
  2. использовать numpy.array для изменения A. Не работает, потому что вы изменяете копию
    >>> numpy.array(A)[2]=2
    >>> A
    matrix([[ 1.,  1.,  1.],
            [ 1.,  1.,  1.],
            [ 1.,  1.,  1.]])
    
  3. , используя numpy.asarray, чтобы изменить A. Он работал, потому что вы сами изменяете A
    >>> numpy.asarray(A)[2]=2
    >>> A
    matrix([[ 1.,  1.,  1.],
            [ 1.,  1.,  1.],
            [ 2.,  2.,  2.]])
    

Надеюсь, что это поможет!

101
задан brian d foy 24 April 2009 в 20:13
поделиться

1 ответ

Да, модификатор //s Perl недоступен в Vime regexes. Подробнее см. :h perl-patterns и список других различий между регулярными выражениями Vim и Perl.

Вместо этого вы можете использовать \_., что означает «соответствовать любому одиночному символу, включая новую строку». Это немного короче, чем у вас. См. :h /\_..

/This\_.*text/
155
ответ дан Brian Carper 18 August 2018 в 21:08
поделиться
  • 1
    [Д0] blog.vinceliu.com/2007/12/… – Quintin Par 15 January 2010 в 08:55
  • 2
    Ницца - мне просто стало легче. Я делал (. |\n) * – ojrac 25 May 2010 в 02:23
  • 3
    Что делает косая черта в :h /\_.? Я имею в виду, я знаю, что это работает, но почему :h /\_. работает, а не :h \_.? – Eddified 13 July 2012 в 00:49
  • 4
    @Eddified прямая косая черта (которая является ключом по умолчанию для поиска) указывает контекст \_., который вы можете прочитать: дайте мне помощь для выражения поиска \_. – Florian 20 March 2016 в 16:40
  • 5
    @JIXiang Для ленивого совпадения на foo bar \n foo baz \n foo, попробуйте /foo\_.\{-}foo – James M. Lay 7 March 2017 в 18:52
Другие вопросы по тегам:

Похожие вопросы: