Usando o buffer do Vim como entrada e saída padrão para comandos de shell

O buffer do Vim pode ser usado como entrada e saída para outros comandos do shell .

Exemplo de saída

:!ls

Exemplo de entrada

Suponha que você gostou da ideia Hoje eu aprendi e depois de algum tempo gostaria de obter algumas estatísticas sobre sua escrita usando o módulo de língua .

#!/usr/bin/env ruby

require
'lingua'
input
= ARGF.read

report
= Lingua::EN::Readability.new(input)
puts report
.report

A propósito, o conteúdo do arquivo acima foi inserido com :read ~/lingua.rb. Agora, obter estatísticas é tão fácil quanto isto:

:write ! ruby ~/linuga.rb

Number of paragraphs 259
Number of sentences 136
Number of words 1400
Number of characters 9885

Average words per sentence 10.29
Average syllables per word 1.48

Flesch score 70.94
Flesh-Kincaid grade level 5.92
Fog Index 7.75

Observe que todo o conteúdo do buffer foi redirecionado para uma entrada padrão que lingua.rbaceita.