# To get the help mode, is "?" the only way?

**URL:** <https://discourse.julialang.org/t/to-get-the-help-mode-is-the-only-way/17199>\
**Category:** General Usage\
**Created:** [November 6, 2018, 3:46am UTC](https://discourse.julialang.org/t/to-get-the-help-mode-is-the-only-way/17199 "2018-11-06T03:46:31Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![PetrKryslUCSD](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/petrkryslucsd/32/215825_2.png) [@PetrKryslUCSD](https://discourse.julialang.org/u/PetrKryslUCSD)\
**Post date:** [November 6, 2018, 3:46am UTC](https://discourse.julialang.org/t/to-get-the-help-mode-is-the-only-way/17199/1 "2018-11-06T03:46:31Z")

</div>

Can I get the help mode in some other way than by pressing the questionmark key?

---

<div class="post-metadata">

**Author:** ![y4lu](https://avatars.discourse-cdn.com/v4/letter/y/47e85d/32.png) [@y4lu](https://discourse.julialang.org/u/y4lu)\
**Post date:** [November 6, 2018, 4:20am UTC](https://discourse.julialang.org/t/to-get-the-help-mode-is-the-only-way/17199/2 "2018-11-06T04:20:47Z")

</div>

` Docs.doc(binding, sig::Type)` will give help on a function method, but doesn’t enter the help mode

---

<div class="post-metadata">

**Author:** ![WschW](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/wschw/32/6575_2.png) [@WschW](https://discourse.julialang.org/u/WschW)\
**Post date:** [November 6, 2018, 5:52am UTC](https://discourse.julialang.org/t/to-get-the-help-mode-is-the-only-way/17199/3 "2018-11-06T05:52:36Z")

</div>

There is also the `@doc` macro which returns the docstring.

---

<div class="post-metadata">

**Author:** ![PetrKryslUCSD](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/petrkryslucsd/32/215825_2.png) [@PetrKryslUCSD](https://discourse.julialang.org/u/PetrKryslUCSD)\
**Post date:** [November 6, 2018, 3:52pm UTC](https://discourse.julialang.org/t/to-get-the-help-mode-is-the-only-way/17199/4 "2018-11-06T15:52:23Z")

</div>

That is true. However, the macro does not have the “fuzzy search” capability of the help mode:  
 ![image](https://global.discourse-cdn.com/julialang/original/3X/d/9/d99a4b45cb791d9ead5005a6da2e6f532a8148bf.png)

---

<div class="post-metadata">

**Author:** ![PetrKryslUCSD](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/petrkryslucsd/32/215825_2.png) [@PetrKryslUCSD](https://discourse.julialang.org/u/PetrKryslUCSD)\
**Post date:** [November 6, 2018, 3:55pm UTC](https://discourse.julialang.org/t/to-get-the-help-mode-is-the-only-way/17199/5 "2018-11-06T15:55:27Z")

</div>

This is a good point. Unfortunately no search is possible, one either knows the precise binding and can use this, or is out of luck.

---

<div class="post-metadata">

**Author:** ![mbauman](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mbauman/32/31082_2.png) [@mbauman](https://discourse.julialang.org/u/mbauman)\
**Post date:** [November 6, 2018, 4:01pm UTC](https://discourse.julialang.org/t/to-get-the-help-mode-is-the-only-way/17199/6 "2018-11-06T16:01:23Z")

</div>

The REPL help mode is implemented with the `REPL.@repl` macro:

```julia
julia> REPL.@repl coll
search: collect code_llvm @code_llvm Colon coalesce complex Complex ComplexF64 ComplexF32 ComplexF16 countlines code_lowered Cdouble Clonglong @code_lowered precompile functionloc cglobal Culonglong

Couldn't find coll
Perhaps you meant conj, copy, cos, cosc, cosd, cosh, cot, cotd, coth, ceil, cld, ccall, all, fill, foldl, kill, Bool, collect, Colon, Core, conj!, copy!, cospi, count, const, acos, acosd, acosh or acot
  No documentation found.

  Binding coll does not exist.

```

---

<div class="post-metadata">

**Author:** ![joa-quim](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/joa-quim/32/227_2.png) [@joa-quim](https://discourse.julialang.org/u/joa-quim)\
**Post date:** [November 6, 2018, 7:25pm UTC](https://discourse.julialang.org/t/to-get-the-help-mode-is-the-only-way/17199/7 "2018-11-06T19:25:11Z")

</div>

And how do we find where REPL.@repl is defined?

Tried, but …

```julia
julia> @which REPL.@repl
WARNING: Base.REPL is deprecated, run `using REPL` instead
 in module Main
ERROR: no unique matching method found for the specified argument types

```

---

<div class="post-metadata">

**Author:** ![swissr](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/swissr/32/208_2.png) [@swissr](https://discourse.julialang.org/u/swissr)\
**Post date:** [November 6, 2018, 7:29pm UTC](https://discourse.julialang.org/t/to-get-the-help-mode-is-the-only-way/17199/8 "2018-11-06T19:29:38Z")

</div>

```julia
julia> using REPL; @which REPL.@repl sum
@repl( __source__ ::LineNumberNode, __module__ ::Module, ex) in REPL at /Users/osx/buildbot/slave/package_osx64/build/usr/share/julia/stdlib/v1.0/REPL/src/docview.jl:274

```

i.e. ‘stdlib/REPL/src/docview.jl’

[Edit:]  
But since I found the ripgrep (rg) tool I sometimes just grep the julia codebase, it’s almost instantaneous, i.e.

```julia
[snip]/julia (master)$ rg "macro repl" .
./stdlib/REPL/src/docview.jl
274:macro repl(ex) repl(ex) end
275:macro repl(io, ex) repl(io, ex) end

```

---

<div class="post-metadata">

**Author:** ![joa-quim](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/joa-quim/32/227_2.png) [@joa-quim](https://discourse.julialang.org/u/joa-quim)\
**Post date:** [November 6, 2018, 7:36pm UTC](https://discourse.julialang.org/t/to-get-the-help-mode-is-the-only-way/17199/9 "2018-11-06T19:36:25Z")

</div>

Ah, thanks (I’d visited that file after some grepping but couldn’t find the right spot)

---

<div class="post-metadata">

**Author:** ![system](https://global.discourse-cdn.com/julialang/original/3X/1/2/12829a7ba92b924d4ce81099cbf99785bee9b405.png) [@system](https://discourse.julialang.org/u/system)\
**Post date:** [November 18, 2018, 7:36pm UTC](https://discourse.julialang.org/t/to-get-the-help-mode-is-the-only-way/17199/10 "2018-11-18T19:36:28Z")

</div>

This topic was automatically closed 12 days after the last reply. New replies are no longer allowed.
