Skip to content
vic

laughedelic/pisces

♓️ Fish shell plugin that helps you to work with paired symbols in the command line

laughedelic/pisces.json
{
"createdAt": "2016-05-09T20:38:47Z",
"defaultBranch": "master",
"description": "♓️ Fish shell plugin that helps you to work with paired symbols in the command line",
"fullName": "laughedelic/pisces",
"homepage": "",
"language": "Shell",
"name": "pisces",
"pushedAt": "2020-11-30T02:30:19Z",
"stargazersCount": 291,
"topics": [
"fish",
"fish-packages",
"fish-plugin",
"fish-plugins",
"fish-shell",
"fisher",
"fishshell",
"keybindings",
"oh-my-fish",
"oh-my-fish-plugin",
"paired-symbols",
"plugin"
],
"updatedAt": "2025-11-22T09:52:27Z",
"url": "https://github.com/laughedelic/pisces"
}

pisces ['paɪsiz] is a plugin for fish that helps you to work with paired symbols like () and '' in the command line. Similar to your favorite text editor!

Here | denotes the current cursor position. No manual cursor motion involved :sparkles:

  • autocloses pair symbol: ... | + (... (|)
  • skips the closing symbol: ...|) + )... )|
  • removes empty pairs: ...([|]) + backspace...(|) + backspace...|
  • the set of pairs is configurable (see below)
Notes on fish 2.x compatibility

The minimum recommended version of fish is v2.6, because

  • it has a feature called bracketed (a.k.a safe) paste which solves the problem with pasting strings containing paired symbols (they get autoclosed), see #6 for details.

The minimum required version of fish is v2.3, because

  • there was a bug #2210 in v2.2 which would brake quotes handling
  • it uses string builtin which was introduced in v2.3
  • Using Fisher:

    fisher install laughedelic/pisces
  • Using oh-my-fish:

    omf install pisces

    Notice that you will need to restart fish to get this new installation working. This is specific to the way oh-my-fish handles installation.

To disable completing pairs unless the cursor is at the end of the line, set the $pisces_only_insert_at_eol variable:

set -U pisces_only_insert_at_eol 1

You can set the $pisces_pairs universal variable and launch a new fish session to reload key bindings:

set -U pisces_pairs $pisces_pairs '<,>' '`,`' '«,»'

Note that at the moment pisces works correctly only with single-symbol delimiters.

The default set of pairs:

  • (,) parenthesis
  • [,] brackets
  • {,} braces
  • "," double quotes
  • ',' single quotes