перенаправление в файл поиска в Vim

Подписка магазина должна возвращать функцию отмены подписки , которую можно вызвать в componentWillUnmount для успешной отмены подписки из хранилища.

Вы можете определить и сохранить его в состоянии непосредственно в componentWillMount :

this.setState({
  unsubscribe: store.subscribe(() => {
       translateTexts(this.state.texts),store.getState().translate.userLanguage).then((res) => {{
            this.setState({texts: res.data});
        });
  });
});

и затем вызвать unsubscribe для componentWillUnmount

componentWillUnmount() {
  this.state.unsubscribe()
}

Документы Redux : https://redux.js.org/api/store#subscribe

5
задан Sagar Jain 17 September 2015 в 23:40
поделиться

5 ответов

То, что Вы делаете, по существу 'grep-n файл маркировки' из командной строки. Таким образом, можно выполнить ту команду и> это в файл достаточно легко.

Деривация 'grep' даже из в основном того же источника.

3
ответ дан 18 December 2019 в 07:32
поделиться
:redir > matches.txt|execute 'g/foo/#'|redir END

Посмотрите :h :redir, можно также перенаправить к регистрам, переменным, буфер обмена и т.д.

4
ответ дан 18 December 2019 в 07:32
поделиться

не ясно из исходного сообщения, что Вы подразумеваете "под работой легко с ним", но часто полезно видеть и быстро перейти между всеми соответствиями в буфере, не "извлекая" соответствия к отдельному буферу.

энергии встроили внутренний grep. Ваш пример был бы чем-то вроде этого (в энергии, % обозначает текущий файл),

:vimgrep /label/ %

Это возьмет Вас к первому вхождению и сообщит, сколькими там были соответствия. Что в моде то, что можно посмотреть на все соответствия, перечисленные путем открытия quickfix ошибочного использования списка

:cope

Теперь можно просто прокрутить вокруг и нажатие enter на строке для перехода к точной позиции соответствия.

quickfix ошибочный список является точно тем же буфером, который Вы используете, если Вы работаете, делают из энергии, и Ваш компилятор бросает ошибки: это дает Вам список того, что и где ошибки.

После перехода к одному местоположению, на которое указывает quickfix можно перейти к форвардам и назад в списке через :cn и :cp. :ccl закрывает ошибочный список.

Можно также развернуть "ошибочный" список через :vimgrepa /newpattern/ % или :vimgrepadd

(Зарегистрированный) протест состоит в том, что внутренний grep энергии медленнее, чем самые собственные grep реализации (но Вы действительно получаете его "бесплатно" в окнах, например). Если Вам действительно устанавливали grep, можно использовать: grep вместо: vimgrep для подобных результатов.

заключение в кавычки :help grep

Vim имеет два способа найти соответствия для шаблона: Внутренний и внешний. Преимущество внутреннего grep состоит в том, что он работает над всеми системами и использует мощные шаблоны поиска Vim. Внешняя grep программа может использоваться, когда Vim grep не делает то, что Вы хотите.

Внутренний метод будет медленнее, потому что файлы читаются в память. Преимущества: - разделители строки и кодирование автоматически распознаны, как будто файл редактируется. - Шаблоны поиска Vim использования. Могут использоваться многострочные шаблоны. - Когда плагины включены: могут искаться сжатые и удаленные файлы.

Можно также использовать список местоположения, если Вы уже используете ошибочный список для контакта с ошибками компиляции. просто добавьте l (для location) к началу команды grep (:lvimgrep,:lvimgrepa :lgrep, :lgrepa) и используйте :lopen :ln :lp :lcl вместо :c* .

Поскольку больше команд консультируется

:help grep
:help quickfix-window 
:help quickfix
:help quickfix-error-lists
12
ответ дан 18 December 2019 в 07:32
поделиться

Я получил это сети в какой-то момент:

function GoToLine(mainbuffer)
   let linenumber = expand("<cword>")
   silent bd!
   silent execute "buffer" a:mainbuffer
   silent execute ":"linenumber
   silent nunmap <Enter>
endfunction
command -nargs=1 GoToLine :call GoToLine(<f-args>)

function GrepToBuffer(pattern)
   let mainbuffer = bufnr("%")
   silent %yank g

   enew
   silent put! g
   execute "%!egrep -n" a:pattern "| cut -b1-80 | sed 's/:/ /'"
   silent 1s/^/\="# Press Enter on a line to view it\n"/
   silent :2

   silent execute "nmap <Enter> 0:silent GoToLine" mainbuffer "<Enter>"
   " silent nmap <C-G> <C-O>:bd!<Enter>
endfunction
command -nargs=+ Grep :call GrepToBuffer(<q-args>)

Поместите его в свой .vimrc, затем: Grep Foo

Требует, чтобы внешняя grep программа работала правильно.

2
ответ дан 18 December 2019 в 07:32
поделиться

(Просто идея - непротестированный.)

Можно удалить все строки с шаблоном в нем, записать в другой файл и отменить удаление.

:g/label/d
:w matches
u
0
ответ дан 18 December 2019 в 07:32
поделиться
Другие вопросы по тегам:

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