diff --git a/README.md b/README.md
index 19e2a0dc..6cff2b03 100644
--- a/README.md
+++ b/README.md
@@ -90,6 +90,12 @@ K9s is available on Linux, macOS and Windows platforms.
export TERM=xterm-256color
```
+* In order to issue manifest edit commands make sure your EDITOR env is set.
+
+ ```shell
+ export EDITOR=my_fav_editor_here!
+ ```
+
---
## Screenshots
@@ -129,6 +135,7 @@ K9s is available on Linux, macOS and Windows platforms.
## Demo Videos/Recordings
+* [K9s v0.18.0](https://www.youtube.com/watch?v=zMnD5e53yRw)
* [K9s v0.17.0](https://www.youtube.com/watch?v=7S33CNLAofk&feature=youtu.be)
* [K9s Pulses](https://asciinema.org/a/UbXKPal6IWpTaVAjBBFmizcGN)
* [K9s v0.15.1](https://youtu.be/7Fx4XQ2ftpM)
diff --git a/change_logs/release_v0.18.2.md b/change_logs/release_v0.18.2.md
new file mode 100644
index 00000000..6dcc59e3
--- /dev/null
+++ b/change_logs/release_v0.18.2.md
@@ -0,0 +1,28 @@
+
+
+# Release v0.18.2
+
+## Notes
+
+Thank you to all that contributed with flushing out issues and enhancements for K9s! I'll try to mark some of these issues as fixed. But if you don't mind grab the latest rev and see if we're happier with some of the fixes! If you've filed an issue please help me verify and close. Your support, kindness and awesome suggestions to make K9s better is as ever very much noticed and appreciated!
+
+Also if you dig this tool, please consider sponsoring 👆us or make some noise on social! [@kitesurfer](https://twitter.com/kitesurfer)
+
+On Slack? Please join us [K9slackers](https://join.slack.com/t/k9sers/shared_invite/enQtOTA5MDEyNzI5MTU0LWQ1ZGI3MzliYzZhZWEyNzYxYzA3NjE0YTk1YmFmNzViZjIyNzhkZGI0MmJjYzhlNjdlMGJhYzE2ZGU1NjkyNTM)
+
+---
+
+Maintenance Release!
+
+## Oops!
+
+Forgot to link my glorious [video](https://www.youtube.com/watch?v=zMnD5e53yRw)!!
+
+Just a quick cleanup and added a cursor for command and search prompts (Thanks Kyle!)
+
+## Resolved Bugs/Features/PRs
+
+
+---
+
+
© 2020 Imhotep Software LLC. All materials licensed under [Apache v2.0](http://www.apache.org/licenses/LICENSE-2.0)
diff --git a/go.mod b/go.mod
index 3eba83a6..ed891349 100644
--- a/go.mod
+++ b/go.mod
@@ -30,7 +30,7 @@ replace (
require (
github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 // indirect
github.com/atotto/clipboard v0.1.2
- github.com/derailed/tview v0.3.8
+ github.com/derailed/tview v0.3.9
github.com/drone/envsubst v1.0.2 // indirect
github.com/elazarl/goproxy v0.0.0-20190421051319-9d40249d3c2f // indirect
github.com/elazarl/goproxy/ext v0.0.0-20190421051319-9d40249d3c2f // indirect
diff --git a/go.sum b/go.sum
index 5ce362b4..095fd612 100644
--- a/go.sum
+++ b/go.sum
@@ -130,6 +130,8 @@ github.com/derailed/tview v0.3.7 h1:q0eYai9blR6wAWz/+lo2Knacl/Pnv9YSfI4aYme1aok=
github.com/derailed/tview v0.3.7/go.mod h1:GJ3k/TIzEE+sj1L09/usk6HrkjsdadSsb03eHgPbcII=
github.com/derailed/tview v0.3.8 h1:P5UmN8piZ8SbbvdPF2gnGd2dNaU6xLZtyYFCgrbrELQ=
github.com/derailed/tview v0.3.8/go.mod h1:GJ3k/TIzEE+sj1L09/usk6HrkjsdadSsb03eHgPbcII=
+github.com/derailed/tview v0.3.9 h1:6iUtOmzN6gdk6yx1KNSwhMgrsLYjgldduulKPqHnqwk=
+github.com/derailed/tview v0.3.9/go.mod h1:GJ3k/TIzEE+sj1L09/usk6HrkjsdadSsb03eHgPbcII=
github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM=
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E=
diff --git a/internal/ui/app.go b/internal/ui/app.go
index 79ceb594..39d76bac 100644
--- a/internal/ui/app.go
+++ b/internal/ui/app.go
@@ -108,6 +108,7 @@ func (a *App) bindKeys() {
tcell.KeyBackspace: NewKeyAction("Erase", a.eraseCmd, false),
tcell.KeyDelete: NewKeyAction("Erase", a.eraseCmd, false),
tcell.KeyCtrlU: NewSharedKeyAction("Clear Filter", a.clearCmd, false),
+ tcell.KeyCtrlQ: NewSharedKeyAction("Clear Filter", a.clearCmd, false),
}
}
diff --git a/internal/ui/command.go b/internal/ui/command.go
index 9fc87c65..21bef2c5 100644
--- a/internal/ui/command.go
+++ b/internal/ui/command.go
@@ -26,8 +26,9 @@ type Command struct {
// NewCommand returns a new command view.
func NewCommand(styles *config.Styles, m *model.FishBuff) *Command {
- c := Command{styles: styles, TextView: tview.NewTextView(), model: m}
+ c := Command{styles: styles, TextView: tview.NewTextView(), model: m, suggestionIndex: -1}
c.SetWordWrap(true)
+ c.ShowCursor(true)
c.SetWrap(true)
c.SetDynamicColors(true)
c.SetBorder(true)
@@ -88,7 +89,8 @@ func (c *Command) InCmdMode() bool {
}
func (c *Command) activate() {
- c.write(c.text)
+ c.SetCursorIndex(len(c.text))
+ c.write(c.text, "")
}
func (c *Command) update(s string) {
@@ -97,16 +99,21 @@ func (c *Command) update(s string) {
}
c.text = s
c.Clear()
- c.write(c.text)
+ c.write(s, "")
}
func (c *Command) suggest(text, suggestion string) {
c.Clear()
- c.write(text + "[gray::-]" + suggestion)
+ c.write(text, suggestion)
}
-func (c *Command) write(s string) {
- fmt.Fprintf(c, defaultPrompt, c.icon, s)
+func (c *Command) write(text, suggest string) {
+ c.SetCursorIndex(4 + len(text))
+ txt := text
+ if suggest != "" {
+ txt += "[gray::-]" + suggest
+ }
+ fmt.Fprintf(c, defaultPrompt, c.icon, txt)
}
// ----------------------------------------------------------------------------
diff --git a/internal/view/details.go b/internal/view/details.go
index 902b8891..50a0fdfe 100644
--- a/internal/view/details.go
+++ b/internal/view/details.go
@@ -117,6 +117,7 @@ func (d *Details) bindKeys() {
ui.KeyShiftN: ui.NewKeyAction("Prev Match", d.prevCmd, true),
ui.KeySlash: ui.NewSharedKeyAction("Filter Mode", d.activateCmd, false),
tcell.KeyCtrlU: ui.NewSharedKeyAction("Clear Filter", d.clearCmd, false),
+ tcell.KeyCtrlW: ui.NewSharedKeyAction("Clear Filter", d.clearCmd, false),
tcell.KeyBackspace2: ui.NewSharedKeyAction("Erase", d.eraseCmd, false),
tcell.KeyBackspace: ui.NewSharedKeyAction("Erase", d.eraseCmd, false),
tcell.KeyDelete: ui.NewSharedKeyAction("Erase", d.eraseCmd, false),
diff --git a/internal/view/xray.go b/internal/view/xray.go
index 2fcc37c4..cbba6e5f 100644
--- a/internal/view/xray.go
+++ b/internal/view/xray.go
@@ -111,6 +111,7 @@ func (x *Xray) bindKeys() {
tcell.KeyBackspace: ui.NewSharedKeyAction("Erase", x.eraseCmd, false),
tcell.KeyDelete: ui.NewSharedKeyAction("Erase", x.eraseCmd, false),
tcell.KeyCtrlU: ui.NewSharedKeyAction("Clear Filter", x.clearCmd, false),
+ tcell.KeyCtrlW: ui.NewSharedKeyAction("Clear Filter", x.clearCmd, false),
tcell.KeyEscape: ui.NewSharedKeyAction("Filter Reset", x.resetCmd, false),
})
}