Vim has this ! special character that will run any shell command without having to close it. Here are 3 ways I often use it:
1. Format a JSON blob:
:%!python -m json.tool
2. Count number of characters in a file:
| body { | |
| margin: 20px; | |
| font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; | |
| } | |
| input { | |
| border: 1px solid #888; | |
| font-size: 1.2rem; | |
| padding: 0.5rem; | |
| } |
| var crypto = require("crypto"); | |
| /** | |
| * Get the signature/digest of a supplied input string | |
| * @param data [Required] The String to encode | |
| * @param awsSecretKey [Required] Secret key shared with Amazon | |
| * @param algorithm [Optional] Encryption algorithm, defaults to sha256 | |
| * @param encoding [Optional] The output encoding. Default to base64 | |
| * @returns Str with encoded digest of the input string | |
| */ | |
| function generateHmac (data, awsSecretKey, algorithm, encoding) { |
| var crypto = require('crypto'); | |
| var SHARED_SECRET = "sup3rs3cr3t!!"; | |
| function signString(string_to_sign, shared_secret) { | |
| var hmac = crypto.createHmac('sha512', shared_secret); | |
| hmac.write(string_to_sign); | |
| hmac.end() | |
| return hmac.read(); | |
| } |
| var http = require("http"), | |
| url = require("url"), | |
| path = require("path"), | |
| fs = require("fs") | |
| port = process.argv[2] || 8080; | |
| http.createServer(function(request, response) { | |
| var uri = url.parse(request.url).pathname | |
| , filename = path.join(process.cwd(), uri); |
| #!/bin/sh | |
| # Alot of these configs have been taken from the various places | |
| # on the web, most from here | |
| # https://github.com/mathiasbynens/dotfiles/blob/master/.osx | |
| # Set the colours you can use | |
| black='\033[0;30m' | |
| white='\033[0;37m' | |
| red='\033[0;31m' |
| /** | |
| * Provides requestAnimationFrame in a cross browser way. | |
| * @author paulirish / http://paulirish.com/ | |
| */ | |
| if ( !window.requestAnimationFrame ) { | |
| window.requestAnimationFrame = ( function() { | |
| return window.webkitRequestAnimationFrame || |
| <?php | |
| /** | |
| * An helper file for Laravel 4, to provide autocomplete information to your IDE | |
| * Generated with https://github.com/barryvdh/laravel-ide-helper | |
| * | |
| * @author Barry vd. Heuvel <barryvdh@gmail.com> | |
| */ | |
| exit('Only to be used as an helper for your IDE'); | |
| class App extends Illuminate\Support\Facades\App{ |
| <?php | |
| /** | |
| * I had to parse an XLSX spreadsheet (which should damn well have been a CSV!) | |
| * but the usual tools were hitting the memory limit pretty quick. I found that | |
| * manually parsing the XML worked pretty well. Note that this, most likely, | |
| * won't work if cells contain anything more than text or a number (so formulas, | |
| * graphs, etc ..., I don't know what'd happen). | |
| */ |