Skip to content
KOGA Mitsuhiro edited this page May 16, 2023 · 51 revisions

NOTE: This page is becoming less maintained and contains information that is not up-to-date. Please refer to help :h goneovim as well.

Command line I/F

All options are the following. All missing options are treated as bare nvim options. That is, goneovim -u NONE is effective.

Usage:
  goneovim [OPTIONS]

Application Options:
      --geometry=     Initial window geomtry [e.g. --geometry=800x600]
      --server=       Remote session address [e.g. --server=host:3456]
      --ssh=          Attaching to a remote nvim via ssh. Default port is 22. [e.g. --ssh=user@host:port]
      --nvim=         Excutable nvim path to attach [e.g. --nvim=/path/to/nvim]
      --debug=        Run debug mode with debug.log(default) file [e.g. --debug=/path/to/my-debug.log]
      --fullscreen    Open the window in fullscreen on startup
      --maximized     Maximize the window on startup
      --exttabline    Externalize the tabline
      --extcmdline    Externalize the cmdline
      --extmessages   Externalize the messages. Sets --extcmdline implicitly
      --extpopupmenu  Externalize the popupmenu
      --version       Print Goneovim version
      --wsl=          Attach to nvim process in wsl environment with distribution(default) [e.g. --wsl=Ubuntu]
      --nofork        Run in foreground

Help Options:
  -h, --help          Show this help message

On Windows, you can display the help using the following command:

goneovim /? | more

Configuration

GoNeovim’s config file is located at

  • On MacOS or Linux

    ~/.config/goneovim/settings.toml
    
  • On Windows Same as MacOS, Linux if XDG_CONFIG_HOME is defined. If not, it is as follows.

    %USERPROFILE%\.config\goneovim\settings.toml
    

Example GoNeovim configuration, showing all possible options:

## Goneovim settings.toml
## All of the following commented configuration items have default values.

[Editor]
## If enabled, when the Close button of the application window is clicked,
## the application will exit without confirmation, even if there are unsaved
## updates.
IgnoreSaveConfirmationWithCloseButton = false

## Makes the application window frameless.
# BorderlessWindow = false

## Controls whether the title bar is displayed when the borderless 
## window setting is enabled.
# HideTitlebar = false

## Editor minimum window width (>= 400)
# Width = 800
## Editor minimum window height (>= 300)
# Height = 600
## Margin adds a margin between the window and the drawn content.
## This value is 0 by default for Linux and 2 by default for MacOS and Windows.
# Margin = 0
## Gap create a gap on the left and right sides of the application window.
# Gap = 0

## Reverses the direction of scrolling with the mouse wheel.
# ReversingScrollDirection = false

## Specifies the amount of scrolling by the mouse wheel. The default value is 1.
# LineToScroll = 1

## MouseScrollingUnit sets the mode of mouse scrolling. 
## "line" scrolls in lines.
## "pixel" scrolls in pixels.
## "smart" scrolls in pixels when the amount of scrolling is small, and
##         scrolls in lines when the amount of scrolling is large.
## The default value is "smart" on macos, and "line" on other operating systems.
# MouseScrollingUnit = "line"

## This option makes the whole GUI window in semi-transparent.
## This setting also implicitly enables the Drawborder setting
# Transparent = 1.0

## Launch goneovim with full screen window size.
# StartFullscreen = false
## Launch goneovim with maximized window size.
# StartMaximizedWindow = false

## Enabling WindowGeometryBasedOnFontmetrics sets the minimum unit of window geometry change 
## to the width and height values specified by font metrics.
## When enabled, maximization with the GonvimMaximize command may not work well due to 
## the combination of screen size and font metrics.
# WindowGeometryBasedOnFontmetrics = false

## Enable the ability to remember the last window geometry that was displayed
## and restore it at the next startup.
RestoreWindowGeometry = false

## Editor external font-family, font-siz.
## This is the font settings of the graphical UI as an nvim front end.
## Fontfamily is
## In MacOS, 
# FontFamily = "Monaco"
## In Linux
# FontFamily = "Consolas"
## In Windows
# FontFamily = "Windows"
## Fontsize is
# FontSize = 12
## letterspace is
# Letterspace = 0

## Neovim external UI features
## The following is the default value of goneovim.
## You can change the behavior of the GUI by changing the following boolean values.
## If you prefer the traditional Vim UI, set it to false for all.
## Also, `ExtMessages` is still experimental at this time and we don't recommend setting it to true if you want stability.
# ExtCmdline   = false
# ExtPopupmenu = false
# ExtTabline   = false
# ExtMessages  = false

## Goneovim has a cached rendering feature enabled to speed up the process.
## If you want to disable it, set it to false
# CachedDrawing = true
## You can specify the cache size to be used by the cache rendering feature of goneovim.
## The default is 400.
# CacheSize = 400

## Disables font ligatures.
# DisableLigatures = true

## Copy yanked text to clipboard
# Clipboard = true

## This setting is equivalent to Macmeta in MacVim.
# Macmeta = false

## The input method editor will be automatically disabled when the mode is changed to normal mode.
## It may be useful for users who use the input method editor (e.g. East Asian users).
## This option is depricated. Use `ModeEnablingIME`
# DisableImeInNormal = false

## This option specifies a list of modes in which the IME is to be enabled, and goneovim will enable
## the IME only in those modes.
## It may be useful for users who use the input method editor (e.g. East Asian users).
## e.g. 
## ModeEnablingIME = ["insert", "cmdline_normal"]
## The available mode strings:
##   "normal", "insert", "replace", "visual", "visual_select",
##    "cmdline_normal", "cmdline_insert", "cmdline_replace", etc.
# ModeEnablingIME = []

## This option allows you to hide the mouse cursor in the gooneovim window 
## when you type a key, and to redisplay it when you move the mouse cursor again. 
# HideMouseWhenTyping = false

## Draw borders on the GUI side instead of the vertical border and status line that nvim draws.
# DrawWindowSeparator = false
# WindowSeparatorTheme = "dark"
# WindowSeparatorColor = "#2222ff"
# WindowSeparatorGradient = false

## Draw built-in indent guide
## Enabling this setting will have a slight impact on performance.
# IndentGuide = false
# IndentGuideIgnoreFtList = ["md"]
# OptionsToUseGuideWidth = "tabstop"

## Animates the scrolling behavior of Neovim when the scroll command is entered.
# SmoothScroll = false
## Specifies the speed of animation in smooth scrolling.
# SmoothScrollDuration = 300
## Disables horizontal scrolling for smooth scrolling with the touchpad.
# DisableHorizontalScroll = true

## Draw border on a float window
# DrawBorderForFloatWindow = false

## Draw shadow under a float window
# DrawShadowForFloatWindow = false

## Enable desktop notification settings for nvim messages.
## This option works only if `ExtMessages` is enabled.
# DesktopNotifications = false

## Controls whether mouse events in Neovim are ignored when
## an application window is clicked while the application window is inactive.
# IgnoreFirstMouseClickWhenAppInactivated = false

# Display the effect when clicked
# ClickEffect = false

## Specifies the command used to open the file in an external file explorer, etc. The default is ":e".
# FileOpenCmd = ":e"

# Pattern that fills the diff background
# Change the background pattern used for diff display.
# This option allows you to use a visual effect pattern such as Dense, Diagonal Stripe instead of a regular solid pattern.
# The available patterns are all Qt brush styles. For more information, See: https://doc.qt.io/qt-5/qbrush.html#details
# // -- diffpattern enum --
# // SolidPattern             1
# // Dense1Pattern            2
# // Dense2Pattern            3
# // Dense3Pattern            4
# // Dense4Pattern            5
# // Dense5Pattern            6
# // Dense6Pattern            7
# // Dense7Pattern            8
# // HorPattern               9
# // VerPattern               10
# // CrossPattern             11
# // BDiagPattern             12
# // FDiagPattern             13
# // DiagCrossPattern         14
# // LinearGradientPattern    15
# // RadialGradientPattern    16
# // ConicalGradientPattern   17
# // TexturePattern           24
# DiffAddPattern    = 1
# DiffDeletePattern = 1
# DiffChangePattern = 1

## Extra Dock menu option in MacOS
## You can add a menu with your own command options 
# [Editor.DockmenuActions]
# hoge = "-u NONE"
# fuga = "-u NORC"

## You can write a vimscript to be executed after goneovim starts,
## for example to disable the vimscript that Goneovim has embedded internally.
## GinitVim = '''
##  let g:hoge = 'fuga'
## '''
# Ginitvim = ""


[Cursor]
## Specifies whether the smooth cursor feature is enabled or disabled by a boolean value.
# SmoothMove = false

## Specifies the duration of the animation at the smooth cursor. Default is 55ms.
## Note that Goneovim uses the specified value as a base value and makes slight adjustments depending on the distance.
# Duration = 55


## The palette is used as an input UI for externalized command lines and the Fuzzy-Finder feature built into Goneovim.
[Palette]
## Specifies the proportion of the command line palette to the height of the entire window.
# AreaRatio = 0.5
## Specifies the number of items to be displayed in the command line palette.
# MaxNumberOfResultItems = 30
## Specifies the opacity of the command line palette.
# Transparent = 1.0


## Configure externalized message UI.
[Message]
## Specifies the opacity of the message window.
# Transparent = 1.0


## The statusline configuration below relates to the display of Goenovim's own external status lines.
## If you want to use neovim's status line plugin, you should disable its display.
# [Statusline]
## Whether or not to display the external status line
# Visible = false

## Options: "textLabel" / "icon" / "background" / "none"
# ModeIndicatorType = "textLabel"

## Optional setting colors per Neovim editing modes
# NormalModeColor = "#3cabeb"
# CommandModeColor = "#5285b8"
# InsertModeColor = "#2abcb4"
# ReplaceModeColor = "#ff8c0a"
# VisualModeColor = "#9932cc"
# TerminalModeColor = "#778899"

## Statusline components
# Left = [ "mode", "filepath", "filename" ]
# Right = [ "message", "git", "filetype", "fileformat", "fileencoding", "curpos", "lint" ]


## Configure externalized tabline UI.
[Tabline]
## Whether or not to display the external tabline
# Visible = true
# ShowIcon = true


## Configure externalized popupmenu UI.
[Popupmenu]
## neovim's popupmenu is made up of word, menu and info parts.
## Each of these parts will display the following information.
##   word:   the text that will be inserted, mandatory
##   menu:   extra text for the popup menu, displayed after "word"
##   info:   more information about the item, can be displayed in a preview window
## The following options specify whether to display a dedicated column in the popupmenu
## to display the long text displayed in the `info` part.
# ShowDetail = true
 
## total number to display item
# Total = 20
 
## width of `menu` column
# MenuWidth = 400
 
## width of `info` column
# InfoWidth = 1
 
## width of `detail` column
# DetailWidth = 250
 
## Show digit number which can select item for popupmenu
# ShowDigit = true


[ScrollBar]
## Specifies whether to show the external scrollbar or not.
# Visible = false


[MiniMap]
## To view the minimap, launch an additional nvim instance;
## setting Disable to true will not launch this additional nvim instance
## and will completely disable the minimap feature.
# Disable = false

## Specifies whether to show the minimap or not.
# Visible = false

## Specifies the width of the minimap.
# Width = 100

[SideBar]
## Specifies whether to show the external sidebar or not.
# Visible = false

## Specify the sidebar width
# Width = 200

## Specify whether or not to draw a shadow under the sidebar.
# DropShadow = false

## Specify the color to use when selecting items in the sidebar or palette in hexadecimal format
# AccentColor = "#5596ea"


[FileExplore]
## Specify the maximum number of items to be displayed in the file explorer.
# MaxDisplayItems = 30


[Workspace]
## This setting sets the format of the path string of CWD in the sidebar.
##  name: directoryname
##  full: /path/to/directoryname
##  minimum: /p/t/directoryname
# PathStyle = "minimum"

## Specifies whether the last exited session should be restored at the next startup.
# RestoreSession = false

Workspace

You can use the following commands to control workspace

GonvimWorkspaceNew       -  Create a new workspace
GonvimWorkspaceNext      -  Switch to the next workspace
GonvimWorkspacePrevious  -  Switch to the previous workspace
GonvimWorkspaceSwitch n  -  Switch to workspace n

Smooth scroll

[Editor]
SmoothScroll = true

External file explorer

GonvimFilerOpen

MiniMap

GonvimMiniMap           - Toggle minimap window

Transparent window

put the following lines into settings.toml

[Editor]
# Transparent window alpha
# Note: This setting also implicitly enables the Drawborder setting
Transparent = 0.8

Indent guide

put the following lines into settings.toml

[Editor]
IndentGuide = true

Independent font settings per window (experimental)

This feature allows you to set the font for each window of nvim. Note: In the current version, if the window size is changed after applying independent font settings to a window, the screen UI is broken.

GonvimGridFont "Fira Code:h14"

Desktop Notifications

put the following lines into settings.toml

[Editor]
ExtMessages = true
DesktopNotifications = true

Remote Attachment

Goneovim supports remote attachment. Usage is the same as neovim-qt remote attachment.

Usage:

goneovim --server ~/.local/nvim_remotes/ubuntu
goneovim --server {host}:{port}

Note: In the remote attachment, workspaces feature are not supported.

WSL Support

Goneovim supports WSL in Windows. Usage is the same as neovide WSL Support.

Usage:

goneovim --wsl[=distribution]

To use the default WSL distribution, you can use:

goneovim --wsl

To use a non-default distribution, such as openSUSE-Tumbleweed, you can use:

goneovim --wsl=openSUSE-Tumbleweed