server.Server.format
Rust
- Python Unavailable
- TypeScript Unavailable
- Rust
- Go Unavailable
- Java Unavailable
- .NET Unavailable
- C++ Unavailable
- Swift Unavailable
- Module
- server
- Declared in
- Server
- Package
- libtmux
- Source
- crates/libtmux/src/server.rs
-
Expand a tmux format string and return the result.
This is
display-message -p, whose target is a pane: the format is evaluated against it, so#{pane_current_command}and the session and window fields around it all resolve from there.The result is
TmuxTextbecause a format can interpolate names that are not valid UTF-8.A literal
#(command)startscommandin a shell. Recursive expansion, such as#{E:status-left}, can also expose a command stored in the expanded value. The job is asynchronous, so this call may return before it produces output. Escaping the outer template with##does not escape text introduced by a recursive expansion. Use only validated, simple#{field}lookups with untrusted input.A
%in the template is a time conversion, not literal text. tmux expands this command throughstrftimebefore it expands#{}-- it callsformat_expand_timehere and plainformat_expandfor every listing -- so%Ybecomes the year. Write%%for a literal%.A
%followed by somethingstrftimedoes not define is worse than surprising: it is not portable. glibc keeps both characters, so the template survives; Apple's libc emits the conversion character alone and deletes the%. So a template separating fields with%reads back correctly on Linux and comes back unframed on macOS. Separate fields with a byte that is not%.Errors
Returns
Error::ServerMismatchwhen the pane belongs to another server, or an error when tmux rejects the format or the pane is gone.
0 declared, 0 inherited