def do_ls(self, params):
        """
\x1b[1mNAME\x1b[0m
        ls - Lists the znodes for the given <path>

\x1b[1mSYNOPSIS\x1b[0m
        ls <path> [watch] [sep]

\x1b[1mOPTIONS\x1b[0m
        * watch: set a (child) watch on the path (default: false)
        * sep: separator to be used (default: '\\n')

\x1b[1mEXAMPLES\x1b[0m
        > ls /
        configs
        zookeeper

        Setting a watch:

        > ls / true
        configs
        zookeeper

        > create /foo 'bar'
        WatchedEvent(type='CHILD', state='CONNECTED', path=u'/')

        > ls / false ,
        configs,zookeeper

        """
        watcher = lambda evt: self.show_output(str(evt))
        kwargs = {"watch": watcher} if params.watch else {}
        znodes = self._zk.get_children(params.path, **kwargs)
        self.show_output(params.sep.join(sorted(znodes)))