How do i do sth?

Benjamin Gleitzman bdcb62f035 Enable colorization using the `script` command. 2 years ago
.github bdcb62f035 Enable colorization using the `script` command. 2 years ago
docs 714f0f1a5a Added patch, fixed minor documentation 3 years ago
extension ea09cfb2fa Merge pull request #449 from gleitz/dependabot/npm_and_yarn/extension/code-editor-integration/pathval-1.1.1 2 years ago
howdoi e1baed7692 Put back explanation for using UTF-8 result 2 years ago
notebooks eca6724d8f feat: add language labelling notebook so far 3 years ago
page_cache b15f35af9c Put test back the way it was 3 years ago
requirements 0e79c40689 modified requirements.txt to add rich library 2 years ago
.flake8 6020732bc1 Run github actions on PRs 4 years ago
.flake8rc 16a9bdedcf Fix a bunch of flake8, pylint, and mypy errors 4 years ago
.gitattributes 1c496a969e Added .gitattributes 4 years ago
.gitignore 644ba84ca2 add .idea/ to gitignore 3 years ago
.mypy.ini 16a9bdedcf Fix a bunch of flake8, pylint, and mypy errors 4 years ago
.pre-commit-config.yaml 714f0f1a5a Added patch, fixed minor documentation 3 years ago
.pylintrc 16a9bdedcf Fix a bunch of flake8, pylint, and mypy errors 4 years ago
CHANGES.txt 8b49c211bb Release 2.0.18 3 years ago
LICENSE.txt 054012ba5c moved howdoi.py into a subdirectory for packaging 12 years ago
MANIFEST.in 0cd01d9d50 Release 2.0.17 3 years ago
README.md 7d50889333 Update README 3 years ago
fastentrypoints.py 42b6b6280c Improve github actions linting 4 years ago
mkdocs.yml 4a3b8f8974 Clean up some of the documentation 3 years ago
requirements.txt 58801b5be2 linked prod.txt to requirements.txt 4 years ago
setup.py eb0aca291f added rich library to setup.py 2 years ago
test_howdoi.py bdcb62f035 Enable colorization using the `script` command. 2 years ago

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

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'

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

Visual Studio Code Extension Installation

Head over to the MarketPlace to install the extension.