The goals for this release are to:
- Close the feature gap between TwitVim and some popular Twitter clients.
- Make better use of Twitter API features.
- Avoid sending the user to a web browser for common use cases.
Buffer Stack
When you navigate to a different timeline, TwitVim 0.4 saves the timeline buffer in a stack of buffers up to 10 levels deep. So in the timeline window, you can use Ctrl-O and Ctrl-I to flip back and forth in your timeline history without hitting the Twitter API. (These mappings mimic Vim's jump list navigation keys.)
This is useful if, for example, you're browsing the friends timeline and use Alt-G on an @username to check out someone's timeline. Then you can hit Ctrl-O to go back to the friends timeline and pick up where you left off.
Direct Messages
In 0.3 and earlier, TwitVim relied on the "d username ..." syntax to send direct messages. In 0.4, it has a :SendDMTwitter command that prompts you for the message. The Alt-d mapping in the timeline window also uses this new feature.
I added this feature because older versions of Laconica (the software that identi.ca, a microblogging service with a Twitter-compatible API, runs on) did not support the "d username ..." syntax. It does support that now but I still think this feature is good to have around for completeness.
SSL Twitter API
TwitVim 0.4 can use the https Twitter API in addition to the usual http Twitter API. This will improve security when accessing Twitter through a wi-fi hotspot. Details are a bit sketchy. I added some setup notes to the help documentation but I need feedback from those who've set it up to find out what works and what doesn't.
I've successfully accessed Twitter https API through the cURL, Perl, Ruby, and Python interfaces. That last one was a partial success. For now, TwitVim can access Twitter https through Python only over a direct connection. It can't go through a proxy yet because urllib2 doesn't support the http CONNECT method. (Python folks, please add that urllib2 opener to the standard library and add support for https over authenticated proxies too.)
Use XML feed from Twitter API instead of RSS feed
Earlier versions of TwitVim used the RSS feed from the Twitter API for the public, user, friends, and replies timelines. Starting from 0.4, TwitVim will use the XML feed for everything. The difference between the two is the RSS feed is missing a number of fields, such as in_reply_to_status_id, so this change opens the door to new features that can make use of a full data feed.
Fetch the in-reply-to tweet
In TwitVim 0.4, if you place the cursor on an @-reply and hit \@, TwitVim fetches the tweet to which this one is replying and displays it below.
If the predecessor tweet is also an @-reply, you can hit \@ on it to trace the conversation further.
This is one feature that is now possible because of the aforementioned switch to XML feeds. Previous versions of TwitVim supplied in_reply_to_status_id data when posting replies but didn't make use of in_reply_to_status_id from the API.
There is a quirk associated with the in-reply-to feature. Some @-replies do not have in-reply-to data. These include all @-replies posted via txt and @-replies posted by older clients that don't support in_reply_to_status_id.
Delete tweets and messages
TwitVim 0.4 has new commands and mappings to delete tweets and direct messages. In the timeline, hit \X with the cursor on a tweet or message to delete it. Note that you can only delete your own tweets but you can delete all direct messages that you've sent or received. Currently, identi.ca does not yet support deleting direct messages. It returns "501 Not Implemented" but I'm sure they'll add this feature eventually.
Refresh, Next Page, and Previous Page
In the timeline window, \\ refreshes the timeline, and Ctrl-PageDown and Ctrl-PageUp fetch the next (older) and previous (newer) pages in the timeline. These mappings introduce no new functionality but have been added for convenience.