How do i do sth?

Benjamin Gleitzman 033dd3ced0 Merge pull request #499 from torzsmokus/patch-1 1 ヶ月 前
.github 659e370971 Fix typo in pull request template 1 年間 前
docs 6237a19ccf add missing line break to doc 1 ヶ月 前
extension 58da8af691 Merge pull request #479 from gleitz/dependabot/npm_and_yarn/extension/vscode-howdoi/minimatch-and-mocha-3.1.2 2 年 前
howdoi 1dc6cdebb5 update 2 places for int and str operations 11 ヶ月 前
notebooks eca6724d8f feat: add language labelling notebook so far 3 年 前
page_cache b15f35af9c Put test back the way it was 3 年 前
requirements c2de31407c Bump requests from 2.27.1 to 2.31.0 in /requirements 1 年間 前
.flake8 6020732bc1 Run github actions on PRs 3 年 前
.flake8rc 16a9bdedcf Fix a bunch of flake8, pylint, and mypy errors 3 年 前
.gitattributes 8f7c1795da Fix github line count 2 年 前
.gitignore 644ba84ca2 add .idea/ to gitignore 3 年 前
.mypy.ini 16a9bdedcf Fix a bunch of flake8, pylint, and mypy errors 3 年 前
.pre-commit-config.yaml 286503a39d Add Python 3.11 support 1 年間 前
.pylintrc 286503a39d Add Python 3.11 support 1 年間 前
CHANGES.txt 83b5982109 New release: 2.0.20 2 年 前
LICENSE.txt 054012ba5c moved howdoi.py into a subdirectory for packaging 12 年 前
MANIFEST.in 0cd01d9d50 Release 2.0.17 3 年 前
README.md 96ac6110d4 Update download count in README 1 年間 前
fastentrypoints.py 42b6b6280c Improve github actions linting 3 年 前
mkdocs.yml 4a3b8f8974 Clean up some of the documentation 3 年 前
requirements.txt 58801b5be2 linked prod.txt to requirements.txt 3 年 前
setup.py 286503a39d Add Python 3.11 support 1 年間 前
test_howdoi.py 7d24e9e1c8 fix: remove bad test case 4 ヶ月 前

README.md

Sherlock, your neighborhood command-line sloth sleuth

howdoi

Instant coding answers via the command line

⚡ Never open your browser to look for help again ⚡

build status downloads Python versions


Introduction to howdoi

Are you a hack programmer? Do you find yourself constantly Googling for how to do basic programming tasks?

Suppose you want to know how to format a date in bash. Why open your browser and read through blogs (risking major distraction) when you can simply stay in the console and ask howdoi:

$ howdoi format date bash
> DATE=`date +%Y-%m-%d`

howdoi will answer all sorts of queries:

$ howdoi print stack trace python
> import traceback
>
> try:
>     1/0
> except:
>     print '>>> traceback <<<'
>     traceback.print_exc()
>     print '>>> end of traceback <<<'
> traceback.print_exc()

$ howdoi convert mp4 to animated gif
> video=/path/to/video.avi
> outdir=/path/to/output.gif
> mplayer "$video" \
>         -ao null \
>         -ss "00:01:00" \  # starting point
>         -endpos 10 \ # duration in second
>         -vo gif89a:fps=13:output=$outdir \
>         -vf scale=240:180

$ howdoi create tar archive
> tar -cf backup.tar --exclude "www/subf3" www

image

Installation

pip install howdoi

or

brew install howdoi

Usage

New to howdoi?

howdoi howdoi

RTFM

Commands

usage: howdoi [-h] [-p POS] [-n NUM] [-a] [-l] [-c] [-x] [-C] [-j] [-v] [-e [ENGINE]]
[--save] [--view] [--remove] [--empty] [QUERY ...]

instant coding answers via the command line

positional arguments:
  QUERY                 the question to answer

optional arguments:
  -h, --help            show this help message and exit
  -p POS, --pos POS     select answer in specified position (default: 1)
  -n NUM, --num NUM     number of answers to return (default: 1)
  -a, --all             display the full text of the answer
  -l, --link            display only the answer link
  -c, --color           enable colorized output
  -x, --explain         explain how answer was chosen
  -C, --clear-cache     clear the cache
  -j, --json            return answers in raw json format
  -v, --version         display the current version of howdoi
  -e [ENGINE], --engine [ENGINE]
                        search engine for this query (google, bing, duckduckgo)
  --save, --stash       stash a howdoi answer
  --view                view your stash
  --remove              remove an entry in your stash
  --empty               empty your stash

environment variable examples:
  HOWDOI_COLORIZE=1
  HOWDOI_DISABLE_CACHE=1
  HOWDOI_DISABLE_SSL=1
  HOWDOI_SEARCH_ENGINE=google
  HOWDOI_URL=serverfault.com

Using the howdoi stashing feature (for more advanced features view the keep documentation).

stashing: howdoi --save QUERY
viewing:  howdoi --view
removing: howdoi --remove (will be prompted which answer to delete)
emptying: howdoi --empty (empties entire stash, will be prompted to confirm)

As a shortcut, if you commonly use the same parameters each time and don\'t want to type them, add something similar to your .bash_profile (or otherwise). This example gives you 5 colored results each time.

alias h='function hdi(){ howdoi $* -c -n 5; }; hdi'

And then to run it from the command line simply type:

$ h format date bash

You can also search other StackExchange properties for answers:

HOWDOI_URL=cooking.stackexchange.com howdoi make pesto

or as an alias:

alias hcook='function hcook(){ HOWDOI_URL=cooking.stackexchange.com howdoi $* ; }; hcook'
hcook make pesto

Other useful aliases:

alias hless='function hdi(){ howdoi $* -c | less --raw-control-chars --quit-if-one-screen --no-init; }; hdi'

Integrations

Contributors

How to contribute

We welcome contributions that make howdoi better and improve the existing functionalities of the project. We have created a separate guide to contributing to howdoi that explains how to get up and running with your first pull request.

Notes

  • Works with Python 3.7 and newer. Unfortunately Python 2.7 support has been discontinued :(
  • Special thanks to Rich Jones (\@miserlou) for the idea
  • More thanks to Ben Bronstein for the logo