Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save chuyeow/cba9784fa18cdc662272bd82672cf084 to your computer and use it in GitHub Desktop.

Select an option

Save chuyeow/cba9784fa18cdc662272bd82672cf084 to your computer and use it in GitHub Desktop.
Import ZSH history to Fish
'use strict';
const fs = require('fs');
const expandHomeDir = require('expand-home-dir');
const zshHistoryRaw = fs.readFileSync(expandHomeDir('~/.zsh_history'), 'utf8');
const zshHistoryLines = zshHistoryRaw.split('\n');
const transformLine = line => {
try {
const semicolonIndex = line.indexOf(';');
const command = line.substring(semicolonIndex + 1);
const when = line.substring(0, semicolonIndex).split(':')[1].trim();
return `- cmd: ${command}\n when: ${when}`;
} catch (e) {
// Probably a continuation of the previous line.
// I don't care about these
}
};
const fishHistory = zshHistoryLines.map(line => transformLine(line)).join('\n');
fs.writeFileSync(expandHomeDir('~/.config/fish/fish_history'), fishHistory, 'utf8');
@chuyeow
Copy link
Copy Markdown
Author

chuyeow commented May 11, 2017

It works.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment