Saturday, November 9, 2019

Un-POSIX-like behavior of join command

When joining a line that is followed by an empty line (or one with only
spaces), POSIX specifies that it should be deleted without the current
line being affected. See the section "Join" in
https://pubs.opengroup.org/onlinepubs/9699919799/ .

However, vim appends a space to the current line in this case. For
example, if line 1 is "foo", and line 2 is blank, after executing :1j
line 1 will be "foo ", as can be seen by executing the following (`ex`
is provided by `vi` on my system)

$ echo -e 'foo\n' > test.txt && echo -e '1j\nwq' | ex test.txt && wc -c
test.txt
5 test.txt

nvi/nex give the POSIX behavior:

$ echo -e 'foo\n' > test.txt && echo -e '1j\nwq' | nex test.txt && wc -c
test.txt
4 test.txt

Is this a bug, or intentional?


--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/vim_use/9ab3ed3a-d79b-5f7a-56c3-ee62097baddf%40umanwizard.com.

No comments: