2015-08-29 5 views
1

Я занимаюсь изучением vim и его внутренней работы. Прогуливаясь по глубоким глубинам интернета я наткнулся на этот article, один раздел обсуждает, как превратить уценки в HTML автоматически:Понимание VIM: автоматическое (автоматическое и магическое) преобразование уценки в html

«Смотрите, мастер,» сказал он, «Я почти закончил макросы Vim что перевести Markdown в HTML. Мои функции переплетаются, мой парсер - образец эффективности, а результаты почти безупречны. Я осмелюсь сказать, что я освоил Vimscript, и моя работа будет проверять Vim как современный редактор для просвещенного разработчика! Правильно ли я сделал это? »

Мастер Wq прочитал код помощника в течение нескольких минут, ничего не сказав. Затем он открыл Markdown документ, и напечатал:

:% уценки

HTML заполнил буфер мгновенно. Помощник начал плакать.

Я попробовал это сначала устанавливает уценкой, sudo apt-get install -y markdown ... после этого открыл Vim и напечатал некоторые уценки:

# Hello 
This is just a test 

    public class Main { 
      public static void main(String[] args) { 
      } 
    } 

затем напечатал: :%!markdown, вдруг это появилось:

<h1>Hello</h1> 

<p>This is just a test</p> 

<pre><code> public class Main { 
      public static void main(String[] args) { 
      } 
    } 
</code></pre> 

Мое наблюдение: markdown разбирает уценку и выводит html, поэтому тайна лежит в :%!, может кто-нибудь просветить меня на этом?

BTW, Vim отлично .. вам стоит попробовать!

+5

Посмотрите'.: h:% 'и': h:! '. – Marth

+0

@Marth ah ok,':% '- это селектор, а':! 'выполняет внешнюю команду, это изменит все, что выбрано. Я думаю (попробовал! ls и этот изменил все, что выбрано в Визуальном режиме), но один вопрос, как эта цепочка работает? Отличная функция, будет использовать ее чаще ... –

ответ

3

Фильтрация - чрезвычайно распространенный шаблон unix, который состоит из управления выходом команды перед передачей ее другой команде.

:%!markdown означает «открыть подоболочку, передать все содержимое текущего буфера в stdin программы markdown и заменить весь буфер, что приходит из его stdout

+0

спасибо, есть ли материал, который вы можете предложить? Предпочтительно бесплатные онлайн-ресурсы, так как у меня нет денег для книг –

+1

@IrvinDenzelTorcuato: Обычная рекомендация - пройти через 'vimtutor' пару раз, пока вы не почувствуете, что овладели (большинство), что в нем. Кроме того, встроенная справка (доступная через ': help ') действительно отличная. – Marth

+0

@Marth Я стараюсь читать на ': help' и выкапывать страницы' man', но они выглядят и кажутся слишком сложными для меня –

Смежные вопросы